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

Reply via email to