Q) eclipse 3.2 (Callisto)

David Sledge dsledge at appriss.com
Tue Aug 8 16:23:36 UTC 2006


I'd say there is something different to the gtk display methods.  From
the 3.1.2 sources, I find:

work/plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.ja
va:      static int /*long*/ fixedClassInitProc, fixedMapProc;
work/plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.ja
va:              fixedClassInitCallback = new Callback (getClass (), "fixedClas
sInitProc", 2);
work/plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.ja
va:              fixedClassInitProc = fixedClassInitCallback.getAddress ();
work/plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.ja
va:              if (fixedClassInitProc == 0) SWT.error (SWT.ERROR_NO_MORE_CALL
BACKS);
work/plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.ja
va:              fixed_info.class_init = fixedClassInitProc;
work/plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.ja
va:static int /*long*/ fixedClassInitProc (int /*long*/ g_class, int /*long*/ c
lass_data) {

  

   Update for the amd64 build of eclipse 3.2. From what I could find
   searching the net, this problem in the past had to due with the
   "SWT_PTR_CFLAGS=-DSWT_PTR_SIZE_64" not being set which changes the
   signature for the callback. I am setting this flag but it still fails
   with the same error.
   Here is what I get on x86 using "javap -classpath swt.jar -c
   org.eclipse.swt.widgets.Display"
      static int fixedClassInitProc(int, int);
      205: putstatic       #815; //Field fixedClassInitProc:I
      208: getstatic       #815; //Field fixedClassInitProc:I
   Here is what I get on amd64 using "javap -classpath swt.jar -c
   org.eclipse.swt.widgets.Display"
      static long fixedClassInitProc(long, long);
      214: putstatic       #822; //Field fixedClassInitProc:J
      217: getstatic       #822; //Field fixedClassInitProc:J
   As you can see the signature has changed as it should for the amd64
   build from the x86 build. On amd64 it takes two long parameters and
   returns a long as it should. These checks were done in the work
   directory for the build. I will check when I get home tonight to see
   if the swt.jar that actually installs is correct. Maybe its just
   deploying the wrong one for the amd64 platform.


More information about the freebsd-java mailing list