Well hey I'm just the guy tapping the compile button, er no support agreement here... Likely the original plugin code came via MCHttpRepository location: 'http://source.impara.de/Rome' user: '' password: '' If someone wants to make the required fixes to the plugin code, and the smalltalk code I *think* I can build a new plugin.. Likely this won't affect Sophie users (if any) because that's a one click app. However this means an update to the mac vm's and other platforms in order to ensure the smalltalk class in a Pharo image matches expectations. On 2010-04-18, at 10:45 AM, Bert Freudenberg wrote:
I think only the first 4 inst vars are actually used by the plugin:
http://squeakvm.org/svn/squeak/trunk/platforms/unix/src/plugins/RomePlugin/R... #define CanvasHandleIndex 0 #define CanvasTargetIndex 1 #define CanvasFlagsIndex 2 #define CanvasStrokeColorIndex 3 #define CanvasInstSize 8
So on Linux, Rome does use the "right" size. John appears to have used a Sophie image to generate his Plugin, which makes this fail (though I could not find his Rome plugin in the Mac OS platform code so can't verify that theory).
The proper fix would be to modify RomePlugin class>>initializeInstVarIndices to not generate the indices, but simply hard-code only the used ones (setting CanvasInstSize to 4), and change the comparison John mentioned below to <=. Also remove the unused *Index class vars. Now that there are plugins in the wild, hard-coding the indices is a good idea anyway. During development, the flexible generator version was useful, but not anymore.
- Bert -
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================