/[classpath]/classpath/native/jni/java-io/java_io_VMObjectStreamClass.c
ViewVC logotype

Diff of /classpath/native/jni/java-io/java_io_VMObjectStreamClass.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.8 by mkoch, Thu Apr 29 06:42:15 2004 UTC revision 1.8.2.1 by gnu_andrew, Sat Jan 15 17:02:22 2005 UTC
# Line 50  exception statement from your version. * Line 50  exception statement from your version. *
50   * Signature: (Ljava/lang/Class;)Z   * Signature: (Ljava/lang/Class;)Z
51   */   */
52  JNIEXPORT jboolean JNICALL  JNIEXPORT jboolean JNICALL
53  Java_java_io_VMObjectStreamClass_hasClassInitializer( JNIEnv * env,  Java_java_io_VMObjectStreamClass_hasClassInitializer(JNIEnv * env,
54                                                   jclass vmosklass,                                                   jclass vmosklass
55                                                     __attribute__ ((__unused__)),
56                                                   jclass klass )                                                   jclass klass )
57  {  {
58    jmethodID mid = (*env)->GetStaticMethodID(env, klass, "<clinit>", "()V");    jmethodID mid = (*env)->GetStaticMethodID(env, klass, "<clinit>", "()V");
# Line 104  static void throwInternalError(JNIEnv *e Line 105  static void throwInternalError(JNIEnv *e
105  }  }
106    
107  static jfieldID getFieldReference(JNIEnv *env, jobject field,  static jfieldID getFieldReference(JNIEnv *env, jobject field,
108                                    jobject object, char *type)                                    const char *type)
109  {  {
110    jclass classClass;    jclass classClass;
111    jclass fieldClass;    jclass fieldClass;
# Line 113  static jfieldID getFieldReference(JNIEnv Line 114  static jfieldID getFieldReference(JNIEnv
114    jfieldID fid;    jfieldID fid;
115    const char *field_name;    const char *field_name;
116    const char *type_name;    const char *type_name;
117    size_t type_len;    int type_len;
118    jmethodID mid;    jmethodID mid;
119    jstring name;    jstring name;
120    jstring tname;    jstring tname;
# Line 145  static jfieldID getFieldReference(JNIEnv Line 146  static jfieldID getFieldReference(JNIEnv
146    /* Do we need to find out the exact type descriptor of the field? */    /* Do we need to find out the exact type descriptor of the field? */
147    if (type == NULL)    if (type == NULL)
148      {      {
149          char *the_type;
150    
151        mid = (*env)->GetMethodID(env, fieldClass,        mid = (*env)->GetMethodID(env, fieldClass,
152                                  "getType",                                  "getType",
153                                  "()Ljava/lang/Class;");                                  "()Ljava/lang/Class;");
# Line 178  static jfieldID getFieldReference(JNIEnv Line 181  static jfieldID getFieldReference(JNIEnv
181        type_len = strlen((char *) type_name);        type_len = strlen((char *) type_name);
182        if (type_name[0] != '[')        if (type_name[0] != '[')
183          {          {
184            type = (char *) malloc(type_len + 3);            /* XXX - FIXME - should not use dynamic allocation in core lib. */
185            type[0] = 'L';            the_type = (char *) malloc(type_len + 3);
186            type[type_len + 1] = ';';            the_type[0] = 'L';
187            type[type_len + 2] = '\0';            the_type[type_len + 1] = ';';
188            type++;            the_type[type_len + 2] = '\0';
189              the_type++;
190          }          }
191        else        else
192          {          {
193            type = (char *) malloc(type_len + 1);            /* XXX - FIXME - should not use dynamic allocation in core lib. */
194            type[type_len] = '\0';            the_type = (char *) malloc(type_len + 1);
195              the_type[type_len] = '\0';
196          }          }
197    
198        for (i = 0; i < type_len; i++)        for (i = 0; i < type_len; i++)
199          if (type_name[i] == '.')          if (type_name[i] == '.')
200            type[i] = '/';            the_type[i] = '/';
201          else          else
202            type[i] = type_name[i];            the_type[i] = type_name[i];
203    
204        if (type_name[0] != '[')        if (type_name[0] != '[')
205          type--;          the_type--;
206    
207        (*env)->ReleaseStringUTFChars(env, tname, type_name);        (*env)->ReleaseStringUTFChars(env, tname, type_name);
208          fid = (*env)->GetFieldID(env, declaringClass, field_name, the_type);
209          free(the_type);
210      }      }
211    else    else
212      type_len = -1;      {
213          type_len = -1;
214          fid = (*env)->GetFieldID(env, declaringClass, field_name, type);
215        }
216    
   fid = (*env)->GetFieldID(env, declaringClass, field_name, (const char *)type);  
217    if (fid == NULL)    if (fid == NULL)
218      {      {
219        throwInternalError(env);        throwInternalError(env);
# Line 212  static jfieldID getFieldReference(JNIEnv Line 221  static jfieldID getFieldReference(JNIEnv
221      }      }
222    (*env)->ReleaseStringUTFChars(env, name, field_name);    (*env)->ReleaseStringUTFChars(env, name, field_name);
223    
   /* Did we create the type ourselves? */  
   if (type_len != -1)  
     free(type);  
     
224    return fid;    return fid;
225  }  }
226    
# Line 225  static jfieldID getFieldReference(JNIEnv Line 230  static jfieldID getFieldReference(JNIEnv
230   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;Z)V   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;Z)V
231   */   */
232  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
233  Java_java_io_VMObjectStreamClass_setBooleanNative( JNIEnv * env,  Java_java_io_VMObjectStreamClass_setBooleanNative(JNIEnv * env,
234                                                     jclass vmosklass,                                                    jclass vmosklass
235                                                     jobject field,                                                    __attribute__ ((__unused__)),
236                                                     jobject object,                                                    jobject field,
237                                                     jboolean value )                                                    jobject object,
238                                                      jboolean value )
239  {  {
240    jfieldID fid = getFieldReference (env, field, object, "Z");    jfieldID fid = getFieldReference (env, field, "Z");
241    
242    if (fid != NULL)    if (fid != NULL)
243      (*env)->SetBooleanField(env, object, fid, value);      (*env)->SetBooleanField(env, object, fid, value);
# Line 243  Java_java_io_VMObjectStreamClass_setBool Line 249  Java_java_io_VMObjectStreamClass_setBool
249   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;C)V   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;C)V
250   */   */
251  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
252  Java_java_io_VMObjectStreamClass_setCharNative( JNIEnv * env,  Java_java_io_VMObjectStreamClass_setCharNative(JNIEnv * env,
253                                                  jclass vmosklass,                                                 jclass vmosklass
254                                                  jobject field,                                                 __attribute__ ((__unused__)),
255                                                  jobject object,                                                 jobject field,
256                                                  jchar value )                                                 jobject object,
257                                                   jchar value )
258  {  {
259    jfieldID fid = getFieldReference (env, field, object, "C");    jfieldID fid = getFieldReference (env, field, "C");
260    
261    if (fid != NULL)    if (fid != NULL)
262      (*env)->SetCharField(env, object, fid, value);      (*env)->SetCharField(env, object, fid, value);
# Line 261  Java_java_io_VMObjectStreamClass_setChar Line 268  Java_java_io_VMObjectStreamClass_setChar
268   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;B)V   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;B)V
269   */   */
270  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
271  Java_java_io_VMObjectStreamClass_setByteNative( JNIEnv * env,  Java_java_io_VMObjectStreamClass_setByteNative(JNIEnv * env,
272                                                  jclass vmosklass,                                                 jclass vmosklass
273                                                  jobject field,                                                 __attribute__ ((__unused__)),
274                                                  jobject object,                                                 jobject field,
275                                                  jbyte value )                                                 jobject object,
276                                                   jbyte value )
277  {  {
278    jfieldID fid = getFieldReference (env, field, object, "B");    jfieldID fid = getFieldReference (env, field, "B");
279    
280    if (fid != NULL)    if (fid != NULL)
281      (*env)->SetByteField(env, object, fid, value);      (*env)->SetByteField(env, object, fid, value);
# Line 280  Java_java_io_VMObjectStreamClass_setByte Line 288  Java_java_io_VMObjectStreamClass_setByte
288   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;S)V   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;S)V
289   */   */
290  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
291  Java_java_io_VMObjectStreamClass_setShortNative( JNIEnv * env,  Java_java_io_VMObjectStreamClass_setShortNative(JNIEnv * env,
292                                                   jclass vmosklass,                                                  jclass vmosklass
293                                                   jobject field,                                                  __attribute__ ((__unused__)),
294                                                   jobject object,                                                  jobject field,
295                                                   jshort value )                                                  jobject object,
296                                                    jshort value )
297  {  {
298    jfieldID fid = getFieldReference (env, field, object, "S");    jfieldID fid = getFieldReference (env, field, "S");
299    
300    if (fid != NULL)    if (fid != NULL)
301      (*env)->SetShortField(env, object, fid, value);      (*env)->SetShortField(env, object, fid, value);
# Line 298  Java_java_io_VMObjectStreamClass_setShor Line 307  Java_java_io_VMObjectStreamClass_setShor
307   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;I)V   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;I)V
308   */   */
309  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
310  Java_java_io_VMObjectStreamClass_setIntNative( JNIEnv * env,  Java_java_io_VMObjectStreamClass_setIntNative(JNIEnv * env,
311                                                 jclass vmosklass,                                                jclass vmosklass
312                                                 jobject field,                                                __attribute__ ((__unused__)),
313                                                 jobject object,                                                jobject field,
314                                                 jint value )                                                jobject object,
315                                                  jint value )
316  {  {
317    jfieldID fid = getFieldReference (env, field, object, "I");    jfieldID fid = getFieldReference (env, field, "I");
318    
319    if (fid != NULL)    if (fid != NULL)
320      (*env)->SetIntField(env, object, fid, value);      (*env)->SetIntField(env, object, fid, value);
# Line 317  Java_java_io_VMObjectStreamClass_setIntN Line 327  Java_java_io_VMObjectStreamClass_setIntN
327   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;J)V   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;J)V
328   */   */
329  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
330  Java_java_io_VMObjectStreamClass_setLongNative( JNIEnv * env,  Java_java_io_VMObjectStreamClass_setLongNative(JNIEnv * env,
331                                                 jclass vmosklass,                                                 jclass vmosklass
332                                                   __attribute__ ((__unused__)),
333                                                 jobject field,                                                 jobject field,
334                                                 jobject object,                                                 jobject object,
335                                                 jlong value )                                                 jlong value )
336  {  {
337    jfieldID fid = getFieldReference (env, field, object, "J");    jfieldID fid = getFieldReference (env, field, "J");
338    
339    if (fid != NULL)    if (fid != NULL)
340      (*env)->SetLongField(env, object, fid, value);      (*env)->SetLongField(env, object, fid, value);
# Line 336  Java_java_io_VMObjectStreamClass_setLong Line 347  Java_java_io_VMObjectStreamClass_setLong
347   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;F)V   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;F)V
348   */   */
349  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
350  Java_java_io_VMObjectStreamClass_setFloatNative( JNIEnv * env,  Java_java_io_VMObjectStreamClass_setFloatNative(JNIEnv * env,
351                                                   jclass vmosklass,                                                  jclass vmosklass
352                                                   jobject field,                                                  __attribute__ ((__unused__)),
353                                                   jobject object,                                                  jobject field,
354                                                   jfloat value )                                                  jobject object,
355                                                    jfloat value )
356  {  {
357    jfieldID fid = getFieldReference (env, field, object, "F");    jfieldID fid = getFieldReference (env, field, "F");
358    
359    if (fid != NULL)    if (fid != NULL)
360      (*env)->SetFloatField(env, object, fid, value);      (*env)->SetFloatField(env, object, fid, value);
# Line 354  Java_java_io_VMObjectStreamClass_setFloa Line 366  Java_java_io_VMObjectStreamClass_setFloa
366   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;D)V   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;D)V
367   */   */
368  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
369  Java_java_io_VMObjectStreamClass_setDoubleNative( JNIEnv * env,  Java_java_io_VMObjectStreamClass_setDoubleNative(JNIEnv * env,
370                                                   jclass vmosklass,                                                   jclass vmosklass
371                                                     __attribute__ ((__unused__)),
372                                                   jobject field,                                                   jobject field,
373                                                   jobject object,                                                   jobject object,
374                                                   jdouble value )                                                   jdouble value )
375  {  {
376    jfieldID fid = getFieldReference (env, field, object, "D");    jfieldID fid = getFieldReference (env, field, "D");
377    
378    if (fid != NULL)    if (fid != NULL)
379      (*env)->SetDoubleField(env, object, fid, value);      (*env)->SetDoubleField(env, object, fid, value);
# Line 372  Java_java_io_VMObjectStreamClass_setDoub Line 385  Java_java_io_VMObjectStreamClass_setDoub
385   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;Ljava/lang/Object;)V   * Signature: (Ljava/lang/reflect/Field;Ljava/lang/Object;Ljava/lang/Object;)V
386   */   */
387  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
388  Java_java_io_VMObjectStreamClass_setObjectNative( JNIEnv * env,  Java_java_io_VMObjectStreamClass_setObjectNative(JNIEnv * env,
389                                                   jclass vmosklass,                                                   jclass vmosklass
390                                                     __attribute__ ((__unused__)),
391                                                   jobject field,                                                   jobject field,
392                                                   jobject object,                                                   jobject object,
393                                                   jobject value )                                                   jobject value )
394  {  {
395    jfieldID fid = getFieldReference (env, field, object, NULL);    jfieldID fid = getFieldReference (env, field, NULL);
396    
397    if (fid != NULL)    if (fid != NULL)
398      (*env)->SetObjectField(env, object, fid, value);      (*env)->SetObjectField(env, object, fid, value);

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.8.2.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26