Slang - self primitive: parameters:

Andreas Raab andreas.raab at gmx.de
Wed Dec 14 03:23:26 UTC 2005


Brad Fuller wrote:
> I've been fooling with this all day.. getting frustrating!

If you get frustrated enough and decide to (instead of tricking 
SmartSyntaxPlugin into doing the right thing) do the hard way, here is how:

primitiveGetText
    | text sz oop ptr |
    self export: true.
    self var: #text type: 'char*'.
    self var: #ptr type: 'char*'.
    text := self cCode: 'GetText()'.
    sz := self strlen: sz.
    "Create new String object of appropriate size"
    oop := interpreterProxy
              instantiateClass: interpreterProxy classString
              indexableSize: sz.
    "Copy data"
    ptr := interpreterProxy firstIndexableField: oop.
    self cCode:'memcpy(ptr, text, sz)'.
    "Return oop"
    interpreterProxy pop: interpreterProxy methodArgumentCount+1.
    interpreterProxy push: oop.


Cheers,
   - Andreas



More information about the Vm-dev mailing list