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