/[classpath]/classpath/native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c
ViewVC logotype

Diff of /classpath/native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c

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

revision 1.3.2.2 by gnu_andrew, Tue Aug 2 20:12:40 2005 UTC revision 1.3.2.3 by gnu_andrew, Sun Aug 7 18:34:12 2005 UTC
# Line 173  static void Line 173  static void
173  createRawData (JNIEnv * env, jobject obj, void *ptr)  createRawData (JNIEnv * env, jobject obj, void *ptr)
174  {  {
175    jclass cls;    jclass cls;
   jmethodID method;  
176    jobject data;    jobject data;
177    jfieldID data_fid;    jfieldID data_fid;
178    
179    cls = (*env)->GetObjectClass (env, obj);    cls = (*env)->GetObjectClass (env, obj);
180    data_fid = (*env)->GetFieldID (env, cls, "data", "Lgnu/classpath/RawData;");    data_fid = (*env)->GetFieldID (env, cls, "data", "Lgnu/classpath/Pointer;");
181    assert (data_fid != 0);    assert (data_fid != 0);
182      
183  #ifdef POINTERS_ARE_64BIT    data = JCL_NewRawDataObject (env, ptr);
   cls = (*env)->FindClass (env, "gnu/classpath/RawData64");  
   method = (*env)->GetMethodID (env, cls, "<init>", "(J)V");  
   data = (*env)->NewObject (env, cls, method, (jlong) ptr);  
 #else  
   cls = (*env)->FindClass (env, "gnu/classpath/RawData32");  
   method = (*env)->GetMethodID (env, cls, "<init>", "(I)V");  
   data = (*env)->NewObject (env, cls, method, (jint) ptr);  
 #endif  
184    
185    (*env)->SetObjectField (env, obj, data_fid, data);    (*env)->SetObjectField (env, obj, data_fid, data);
186  }  }
# Line 198  static void * Line 189  static void *
189  getData (JNIEnv * env, jobject obj)  getData (JNIEnv * env, jobject obj)
190  {  {
191    jclass cls;    jclass cls;
   jfieldID field;  
192    jfieldID data_fid;    jfieldID data_fid;
193    jobject data;    jobject data;
194    
195    cls = (*env)->GetObjectClass (env, obj);    cls = (*env)->GetObjectClass (env, obj);
196    data_fid = (*env)->GetFieldID (env, cls, "data", "Lgnu/classpath/RawData;");    data_fid = (*env)->GetFieldID (env, cls, "data", "Lgnu/classpath/Pointer;");
197    assert (data_fid != 0);    assert (data_fid != 0);
198    data = (*env)->GetObjectField (env, obj, data_fid);    data = (*env)->GetObjectField (env, obj, data_fid);
199    
200  #if SIZEOF_VOID_P == 8    return JCL_GetRawData(env, data);
   cls = (*env)->FindClass (env, "gnu/classpath/RawData64");  
   field = (*env)->GetFieldID (env, cls, "data", "J");  
   return (void *) (*env)->GetLongField (env, data, field);  
 #else  
   cls = (*env)->FindClass (env, "gnu/classpath/RawData32");  
   field = (*env)->GetFieldID (env, cls, "data", "I");  
   return (void *) (*env)->GetIntField (env, data, field);  
 #endif  
201  }  }

Legend:
Removed from v.1.3.2.2  
changed lines
  Added in v.1.3.2.3

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