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 <john...@smalltalkconsulting.com> Twitter: > squeaker68882 > Corporate Smalltalk Consulting Ltd. http:// > www.smalltalkconsulting.com > = > = > = > = > = > ====================================================================== > > > > > -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project