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 ===========================================================================