Sheridan mariano can send you the document he wrote about image segment. I can help you. Stef On Feb 19, 2010, at 12:35 AM, Sheridan Mahoney wrote:
Hi all,
I've been catching up on ImageSegment news, and came across this old post from January, and got interested in discovering the mindset behind the outPointers array. I re-ran Mariano's original test code, with a small change: turned 'Object new' into TestOutPointers, a new subclass of Object, with 2 inst vars and one method. I'd be interested in getting feedback on whether my guesses (in quotes below) are in the ball park. The results seem to explain why Association is not in outPointers - what is captured there in the case of adding a class is a lot like what you would need for filling in a class template. If you add an instance of a class, you just need the name of the class.
Some comments I have gleaned from the ImageSegment class on outPointers : This array contains: - OOPs of all objects outside the segment that are pointed to from inside segment. - outPointers that are necessary to turn the bits in the file into objects.
Here's the code:
| segment external internal root |
external := TestOutpointers. internal := true -> external. root := false -> internal. internal := nil.
segment := ImageSegment new copyFromRoots: (Array with: root with: external) sizeHint: 5000 areUnique: true. ^ (segment outPointers ) -> (segment arrayOfRoots )
====== result ================= { false. "object outside the segment that is pointed to from inside segment." Object. "superclass of TestOutpointers" a MethodDictionary(#tryList->a CompiledMethod(1725: TestOutpointers>>tryList) ) "MethodDictionary" #('iv1' 'iv2') "inst var names" ('testing' tryList) "method category" nil. "object outside the segment that is pointed to from inside segment." #TestOutpointers. "symbol representing name of new class" Smalltalk. "environment that TestOutpointers is assigned to" #'IST-outPointers'. "category name for TestOutpointers" true. "object outside the segment that is pointed to from inside segment." Metaclass. "for initializing class variables and instance creation messages particular to a class." Object class. "class of TestOutpointers superclass" ClassOrganizer. "need this in order to determine whether TestOutpointers has been changed in the local env" #'as yet unclassified'. "??" } -> {false->true->TestOutpointers. TestOutpointers}
Any feedback would be very welcome...
Cheers, Sheri
-- View this message in context: http://n4.nabble.com/Something-I-don-t-understand-with-ImageSegments-tp12969... Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project