I am very close now to removing all of the code in Odejava.java relating to the static storage of the current World/Space and JointGroup objects.
Here’s the bind:
If you compile the current CVS, you will get 5 warnings, relating to the use of setCurrentWorld.
Since both setCurrentWorld and getCurrentWorld are marked as deprecated and the internal objects are private, you may ask as I did: “if nobody is using the getCurrentWorld(), why is setCurrentWorld() being used?”.
This is a very good question. One I am hoping Jani may be able to help me with. The problem is that if you don’t call setCurrentWorld - the shit hits the fan nativly in the JavaCollision class. This is despite the fact that it never calls getCurrentWorld (from within Java code).
Here’s the dump:
Unexpected Signal : 11 occurred at PC=0x4DCF3F36
Function=(null)+0x4DCF3F36
Library=/usr/java/j2sdk1.4.2_03/jre/lib/i386/libodejava.so
NOTE: We are unable to locate the function name symbol for the error
just occurred. Please refer to release documentation for possible
reason and solutions.
Current Java thread:
at org.odejava.collision.JavaCollision.createContactJoints(Native Method)
at org.odejava.collision.JavaCollision.applyContacts(JavaCollision.java:153)
at org.odejava.test.car.Car.step(Car.java:473)
at org.odejava.xith3d.test.CarExample.render(CarExample.java:237)
at org.odejava.xith3d.test.CarExample.main(CarExample.java:108)
Everyone’s favourite SIGSEGV
Can you please look into this code Jani?
Once this is cleared up then those static methods will be gone forever from Odejava.
Cheers,
Will.