<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Thank you very much!!!<br>
<br>
<div class="moz-cite-prefix">Am 07.05.2014 13:42, schrieb Nicolas
Cellier:<br>
</div>
<blockquote
cite="mid:CAKnRiT5toHgoT2XD-obLs_B87Ps-5tLDvZ=BFg-9P2q3y2d0Fg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra"><br>
<div class="gmail_quote">2014-05-07 13:16 GMT+02:00 Helmut
Rohregger <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:helmut.rohregger@gmail.com" target="_blank">helmut.rohregger@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
I am interested in the squeak class format word, which is
an instance variable of every squeak class object. I could
not find much info about it...<br>
<br>
The low 2 bits are size bits - size of what? header?<br>
Behavior>>instSize shows how to fetch the number of
instance variables for an object.<br>
Thats it...<br>
<br>
For example, the format for 'Object' is 2, for 'Array' its
6402, for 'MethodContext' its 29070.<br>
Can anybody tell me what additional info is stored in this
format word?<span class=""><font color="#888888"><br>
<br>
- Helmut<br>
<br>
</font></span></blockquote>
</div>
<br>
</div>
<div class="gmail_extra">It's all in image.<br>
</div>
<div class="gmail_extra">Search for inst var write of format<br>
<br>
ClassDescription>>superclass: aClass methodDictionary:
mDict format: fmt<br>
ClassBuilder>>privateNewSubclassOf: newSuper from:
oldClass<br>
ClassBuilder>>computeFormat: type instSize: newInstSize
forSuper: newSuper ccIndex: ccIndex<br>
ClassBuilder>>format: nInstVars variable: isVar words:
isWords pointers: isPointers weak: isWeak<br>
<br>
</div>
<div class="gmail_extra">You will find from highest bits to
lowest bits of the SmallInteger:<br>
<br>
</div>
<div class="gmail_extra">2 bits for instanceSize high bits<br>
</div>
<div class="gmail_extra">5 bits for compactClassIndex (there are
32 possiblie compact classes)<br>
</div>
<div class="gmail_extra">4 bits for instanceSpecification<br>
</div>
<div class="gmail_extra">6 bits for instanceSize low bits<br>
</div>
<div class="gmail_extra">1 bit = 0 unused (alignment for
wordSize in 32bits)<br>
<br>
</div>
<div class="gmail_extra">Note that instanceSize = number of
instance variables + 1.<br>
<br>
</div>
<div class="gmail_extra">In memory, there is one more bit for
representing the SmallInteger:<br>
</div>
<div class="gmail_extra">
1 bit = 1 (=SmallInteger)<br>
<br>
</div>
<div class="gmail_extra">Thus, the low 8 bits represent the size
in bytes of a Word-oriented object (variableWord: or
pointers...)<br>
(assuming the object has at most 63 inst.var. and assuming a
32bits image)<br>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">
</pre>
</blockquote>
<br>
</body>
</html>