<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2014-01-31 Eliot Miranda <span dir="ltr">&lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


 <br><div dir="ltr">Hi All,<div><br></div><div>    I&#39;d be grateful for a second set of eyes to review my changes in plugin land.  The idea here was to eliminate as many isIntegerObject: sends where the intent is to fail if interpreterProxy isImmediate:.  There are other cleanups too; some places where it is assumed the start of an object is object + 4 (instead of object + BaseHeaderSize, which hopefully will fix some Spur bugs, where BaseHeaderSize is 8).  But there are a fair few fixes and I could have made a mistake.</div>



<div><br></div><div>TIA</div><div><br></div></div><br></blockquote><div><br></div><div>Hi Eliot, I&#39;m afraid that so many changes at once has a quite selective effect... <br></div><div>That means significant time and effort to review.<br>


</div><div>Next time, I suggest distillating bugs on purpose just to check how attentive the list is ;)<br><br></div><div>I don&#39;t know if I where careful enough, but there is only one thing I noticed in #ffiIntegerValueOf:<br>

<br></div><div>We now either return a positive32BitValueOf: or a signedMachineIntegerValueOf:<br></div><div>If sizeof(long)==4, then behavior is unchanged, otherwise there is some sort of strange dyssymetry...<br></div><div>
Shouldn&#39;t it then be positveMachineIntegerValueOf: (does not exist yet ?)<br></div><div><br></div><div>The sender #ffiArgByValue:in: will either pushByte short int or long long (signed or not), but not long so there is an apparent mismatch...<br>

Oh but wait, ffiPushSignedInt:in: calls longAt:put:...<br>Oh but wait, longAtPut: takes a sqInt...<br>...which is either an int or a long...<br>It is very disturbing to follow...<br><br>OK, OK, there is no ThreadedFFIIA64Plugin yet, but that&#39;s going to be difficult to implement correctly...<br>
</div><div>Especially if sizeof(int) != sizeof(long), we are going to lack a pushInt pushLong distinction.<br></div></div></div></div>