[ODE] Worst Case Scenario - State save and restore

ACOLORADO at telefonica.net ACOLORADO at telefonica.net
Tue Feb 8 14:38:43 MST 2005

> One final thing, what happens if you point the following two 
> functions 
> to user space and then save the contents?:
> void dJointSetData (dJointID, void *data);
> void  dBodySetData (dBodyID, void *data);

You can save the pointer and restore it as long as you don't destroy 
the data that was pointed by this pointer between calls to SaveState() 
and its matching RestoreState().

But if you intend to RestoreState() after, for example, closing your 
application and relaunching it, this will not work at all for obvious 
reasons: if that data is created again, it will be at another memory 
location so the pointer you saved is now completly invalid. To achieve 
this you must save the data that is pointed by the pointer, not the 
pointer itself (NOTE: your SaveState() and RestoreState() functions 
then must know the type of that data -type of the structure, object or 
whatever you use- or at least its size in bytes).

Hope this helps,

--Arturo Colorado.

More information about the ODE mailing list