[Q] accessing an OrderedCollection from c source plugin

Andreas Raab andreas.raab at gmx.de
Sat Mar 13 22:47:28 UTC 2004


James,

This won't work. The image side equivalent of stObjectat() is #basicAt: and NOT #at: as one might expect. That's because when you use stObjectat() the primitive code which is equivalent to #basicAt: is being executed.

The bottom line here is: Don't ever use complex composite objects in primitives (OrderedCollection, Stream, etc) - only use primitive forms (Integer, Array) as far far as possible. It's simple to handle on the image side (instead of "self doPrimitivieWith: foo" just use "self doPrimitiveWith: foo asArray") and it's terribly hard to deal with the complexities from the primitives.

Cheers,
  - Andreas

  ----- Original Message ----- 
  From: James Gjerde 
  To: The general-purpose Squeak developers list 
  Sent: Saturday, March 13, 2004 10:42 PM
  Subject: [Q] accessing an OrderedCollection from c source plugin


  hello,

  i am trying to access some string literals in a smalltalk OrderedCollection that is passed as an arg to a named primtive.

  in smalltalk:

      primMyPrimitive: anOrderedCollectionOfStrings
          <primtive:'primMyPrimitive' module:'foo'>

  the c source:

      EXPORT(int) primMyPrimitive(void) {
      
          int collectionOop, strElementOop;

          collectionOop = interpreterProxy->stackObjectValue(0);
          strElementOop = interpreterProxy->stObjectat(collectionOop, 1);
  }

  now i know there is data at index 1, but this method is erroring out in squeak. i am writing the c source myself. is there some sort of cast i need to do with the origianl collectionOop in order for it to work with stObjectat? does stObjectat not know that collectionOop represents an OrderedCollection? i just want to be able to get the oops of the elements in the OrderedCollection, i would know how to extract the string values once i got them, problem is i cannot get the oops.

  i would certainly appreciate any help.

  jamie


------------------------------------------------------------------------------



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20040313/0ba04a07/attachment.htm


More information about the Squeak-dev mailing list