« Return to Thread: [squeak-dev] working on hydra, issue with BitBltPlugin.c

[squeak-dev] working on hydra, issue with BitBltPlugin.c

by John M McIntosh :: Rate this Message:

Reply to Author | View in Thread

Well more progress at least it runs some bytecodes on osx before dying.

we get a primitive failure in primitiveRenderScanline, and it paints  
the screen with the walkback and lets me invoke the emergency debugger.
However in looking it seems I"m missing a change to the bitblt plugin.

Given that the interpreter has

/* This entry point needs to be implemented for the interpreter proxy.
        Since BitBlt is now a plugin we need to look up  
BitBltPlugin:=loadBitBltFrom
        and call it. This entire mechanism should eventually go away and be
        replaced with a dynamic lookup from BitBltPlugin itself but for  
backward
        compatibility this stub is provided */

sqInt loadBitBltFrom(struct Interpreter *intr, sqInt bb) {
     void * fn;

        fn = ioLoadFunctionFrom("loadBitBltFrom", "BitBltPlugin");
        if (fn == 0) {
                /* begin primitiveFail */
                intr->successFlag = 0;
                return null;
        }
        return (((sqInt (*)(INTERPRETER_ARG_COMMA sqInt)) fn))
(INTERPRETER_PARAM_COMMA bb);
}


but

BitBltPlugin.c is wrong.

EXPORT(sqInt) loadBitBltFrom(sqInt bbObj) {
        return loadBitBltFromwarping(bbObj, 0);
}


Isn't C fun, typed language, sure that makes life easier we hear, at  
least smalltalk would have said oops no such method that requires TWO  
parms, not let me call a method with two parms
hoping it would do the right thing.    So we now passed in the pointer  
to the interpreter and then pretend it's the bitblt object, which of  
course is wrong because that does in this case cause
the primtive to fail as it pulls data from the wrong place.


--
=
=
=
========================================================================
John M. McIntosh <johnmci@...>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
=
=
=
========================================================================



 « Return to Thread: [squeak-dev] working on hydra, issue with BitBltPlugin.c

LightInTheBox - Buy quality products at wholesale price