/[classpath]/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
ViewVC logotype

Diff of /classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.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 35  this exception to your version of the li Line 35  this exception to your version of the li
35  obligated to do so.  If you do not wish to do so, delete this  obligated to do so.  If you do not wish to do so, delete this
36  exception statement from your version. */  exception statement from your version. */
37    
38    #include "jcl.h"
39  #include "gtkpeer.h"  #include "gtkpeer.h"
40  #include "gnu_java_awt_peer_gtk_GtkImage.h"  #include "gnu_java_awt_peer_gtk_GtkImage.h"
41  #include <gdk-pixbuf/gdk-pixbuf.h>  #include <gdk-pixbuf/gdk-pixbuf.h>
# Line 573  static void Line 574  static void
574  createRawData (JNIEnv * env, jobject obj, void *ptr)  createRawData (JNIEnv * env, jobject obj, void *ptr)
575  {  {
576    jclass cls;    jclass cls;
   jmethodID method;  
577    jobject data;    jobject data;
578    jfieldID data_fid;    jfieldID data_fid;
579    
580    cls = (*env)->GetObjectClass (env, obj);    cls = (*env)->GetObjectClass (env, obj);
581    data_fid = (*env)->GetFieldID (env, cls, "pixmap",    data_fid = (*env)->GetFieldID (env, cls, "pixmap",
582                                   "Lgnu/classpath/RawData;");                                   "Lgnu/classpath/Pointer;");
583    g_assert (data_fid != 0);    g_assert (data_fid != 0);
584    
585  #if SIZEOF_VOID_P == 8    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  
586    
587    (*env)->SetObjectField (env, obj, data_fid, data);    (*env)->SetObjectField (env, obj, data_fid, data);
588  }  }
# Line 599  static void * Line 591  static void *
591  getData (JNIEnv * env, jobject obj)  getData (JNIEnv * env, jobject obj)
592  {  {
593    jclass cls;    jclass cls;
   jfieldID field;  
594    jfieldID data_fid;    jfieldID data_fid;
595    jobject data;    jobject data;
596    
597    cls = (*env)->GetObjectClass (env, obj);    cls = (*env)->GetObjectClass (env, obj);
598    data_fid = (*env)->GetFieldID (env, cls, "pixmap",    data_fid = (*env)->GetFieldID (env, cls, "pixmap",
599                                   "Lgnu/classpath/RawData;");                                   "Lgnu/classpath/Pointer;");
600    g_assert (data_fid != 0);    g_assert (data_fid != 0);
601    data = (*env)->GetObjectField (env, obj, data_fid);    data = (*env)->GetObjectField (env, obj, data_fid);
602    
603  #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  
604  }  }

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