Thanks John for diving into it, Alexandre On 5 Dec 2009, at 05:52, John M McIntosh wrote:
On 2009-12-04, at 11:54 AM, Alexandre Bergel wrote:
Thanks John!
I did a "RomeDemo drawCar" Here is the log:
tryLoading /Users/alexandrebergel/Desktop/T/Smalltalk/Squeak 4.2.1beta1U.app/Contents/Resources/RomePlugin.bundle/Contents/MacOS/ RomePlugin ioFindExternalFunctionIn(getModuleName, 2339392) ioFindExternalFunctionIn(setInterpreter, 2339392) ioFindExternalFunctionIn(initialiseModule, 2339392) ioFindExternalFunctionIn(primitivePluginVersion, 2339392) ioFindExternalFunctionIn(primitiveCreateFormHandle, 2339392) tryLoading /Users/alexandrebergel/Desktop/T/Smalltalk/Squeak 4.2.1beta1U.app/Contents/Resources/SurfacePlugin.bundle/Contents/ MacOS/SurfacePlugin tryLoading /Users/alexandrebergel/Desktop/T/Smalltalk/Squeak 4.2.1beta1U.app/Contents/Resources/SurfacePlugin tryLoading /Users/alexandrebergel/Desktop/T/Smalltalk/Plugins/ SurfacePlugin.bundle/Contents/MacOS/SurfacePlugin tryLoading /Users/alexandrebergel/Desktop/T/Smalltalk/Plugins/ SurfacePlugin ioFindExternalFunctionIn(primitiveOpen, 2339392) Squeak-Rome: canvas oop invalid!
It does load the plugin, so it's not a problem finding it, loading it and calling primitivePluginVersion which checks the rome version then primitiveCreateFormHandle to create a form handle, then fails in primitiveOpen
EXPORT(sqInt) primitiveOpen(void) { sqInt handleOop; sqInt contextIndex; sqInt canvasOop;
canvasOop = interpreterProxy->stackValue(0); if (interpreterProxy->failed()) { return null; } contextIndex = createContextFor(canvasOop); if (!(interpreterProxy->failed())) { handleOop = interpreterProxy->integerObjectOf(contextIndex); interpreterProxy->storePointerofObjectwithValue(CanvasHandleIndex, canvasOop, handleOop); } if (interpreterProxy->failed()) { return null; } return null; }
static sqInt createContextFor(sqInt canvasOop) { cairo_surface_t* targetSurface; sqInt contextIndex; sqInt targetOop; cairo_t* context; sqInt i; sqInt targetID;
if ((interpreterProxy->slotSizeOf(canvasOop)) < CanvasInstSize) { fail("canvas oop invalid"); return null; }
where
#define CanvasInstSize 13
You should check to see what primitiveOpen gets passed
-- = = = = = ====================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http:// www.smalltalkconsulting.com = = = = = ======================================================================
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.