prims.cc (_Jv_NewObjectArray): Use const_cast to initialize length field of array.
* 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. From-SVN: r37771
This commit is contained in:
parent
18205ca3b6
commit
2721806e98
@ -1,3 +1,11 @@
|
||||
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,
|
||||
|
@ -17,8 +17,15 @@ extern "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*);
|
||||
};
|
||||
|
||||
|
@ -411,8 +411,10 @@ _Jv_NewObjectArray (jsize count, jclass elementClass, jobject init)
|
||||
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)
|
||||
@ -446,7 +448,9 @@ _Jv_NewPrimArray (jclass eltype, jint count)
|
||||
__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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user