+2000-11-26 Tom Tromey <tromey@cygnus.com>
+
+ * prims.cc (_Jv_NewObjectArray): Use const_cast to initialize
+ length field of array.
+ (_Jv_NewPrimArray): Likewise.
+ * gcj/array.h (__JArray): `length' field now const. Added
+ constructor.
+
2000-11-26 Anthony Green <green@redhat.com>
* javax/naming/spi/NamingManager.java,
class __JArray : public java::lang::Object
{
+protected:
+ // This is just a hack to work around a warning emitted by the C++
+ // compiler. We initialize `length' evilly, but it doesn't know
+ // that.
+ __JArray () : length (0)
+ {
+ }
public:
- jsize length;
+ const jsize length;
friend jsize JvGetArrayLength (__JArray*);
};
obj = (jobjectArray) _Jv_AllocArray (size, klass);
if (__builtin_expect (! obj, false))
JvThrow (no_memory);
- obj->length = count;
- jobject *ptr = elements (obj);
+ // Cast away const.
+ jsize *lp = const_cast<jsize *> (&obj->length);
+ *lp = count;
+ jobject *ptr = elements(obj);
// We know the allocator returns zeroed memory. So don't bother
// zeroing it again.
if (init)
__JArray *arr = (__JArray*) _Jv_AllocObj (size + elsize * count, klass);
if (__builtin_expect (! arr, false))
JvThrow (no_memory);
- arr->length = count;
+ // Cast away const.
+ jsize *lp = const_cast<jsize *> (&arr->length);
+ *lp = count;
// Note that we assume we are given zeroed memory by the allocator.
return arr;