configure.ac: Remove checks for mktime...
[gcc.git] / libjava / gcj / array.h
index db58ddfbdf874f71c1ac852fc9050b7190cd85ba..4f134f33c5ccb49f1646e36fa0dd90eca0298efd 100644 (file)
@@ -1,6 +1,6 @@
 // array.h - Header file for CNI arrays.  -*- c++ -*-
 
-/* Copyright (C) 1998, 1999, 2000, 2001  Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002  Free Software Foundation
 
    This file is part of libgcj.
 
@@ -29,6 +29,14 @@ public:
   friend jsize JvGetArrayLength (__JArray*);
 };
 
+template<class T>
+class JArray;
+
+template<class T>
+inline T* elements(JArray<T>& x);
+template<class T>
+inline T* elements(JArray<T>* x);
+
 template<class T>
 class JArray : public __JArray
 {
@@ -45,7 +53,7 @@ inline T* elements(JArray<T>& x) { return x.data; }
 template<class T>
 inline T* elements(JArray<T>* x) { return x->data; }
 
-}; // end extern "Java"
+} // end extern "Java"
 
 /* These typesdefs match those in JNI. */
 typedef __JArray *jarray;
@@ -63,7 +71,9 @@ typedef JArray<jstring> *jstringArray;
 extern java::lang::Class _Jv_byteClass, _Jv_shortClass, _Jv_intClass,
   _Jv_longClass, _Jv_booleanClass, _Jv_charClass, _Jv_floatClass,
   _Jv_doubleClass, _Jv_voidClass;
-#define JvPrimClass(TYPE) (& _Jv_##TYPE##Class)
+/* The definition of this macro cannot be enclosed in parentheses
+   because "JvPrimClass(x)" is used as a template argument.  */
+#define JvPrimClass(TYPE) & _Jv_##TYPE##Class
 
 extern "C" jobjectArray _Jv_NewObjectArray(jsize length, jclass, jobject init);
 extern "C" jobject _Jv_NewPrimArray (jclass eltype, jint count);