Squeak
  QotD    "To be or not to be" – Shakespeare
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Oop
Last updated at 1:01 pm UTC on 7 July 2018

2017

SpurImageSegmentLoader
oopIndexForClassIndex: classIndex
	"When a classIndex doesn't have the topBit set it maps to an oop in the segment thusly:"
	^classIndex - 16 "self firstClassIndexPun" * 8 "self allocationUnit"



2016

ImageSegmentLoader
mapOop: oop
	| i |
	(oop bitAnd: 1) = 0 ifTrue:	"pointer"
		[(i := oop >> 2) >= 16r20000000 ifTrue:
			[^outPointers at: i - 16r20000000].
		^oopMap at: oop].
	i := oop >> 1.	"signed small int"
	i <= 16r3FFFFFFF ifTrue: [^i].
	^i - 16r80000000


2009

Object
asOop
	"This method is for compatibility only.
	In Smalltalk, this used to return an integer unique to each object.
	In Squeak, OOPs are internal to the VM.  Accessing an OOP would be useless anyway since it changes when the object is moved during garbage collection."

	^self identityHash