Leigh Makewell wrote:
> Rasmus Lerdorf wrote:
> 
>> Well, that is the point, it didn't actually work.  Code similar to this
>> caused memory corruption.  So while you may not have seen an instant
>> crash, over time and in certain conditions you would get unexplained
>> crashes.  In order to fix this bug we needed to check for this sort of
>> code and in doing so we were able to fix it and also enhance the warning
>> levels to let people detect this sort of potentially bogus code.
>>
>> -Rasmus
> 
> You don't seem to understand. I'll let you in on a secret. We don't care
> about the php engine and how it works. What we care about is the PHP
> code and whether that works. Like it or not you set a precedent. You
> allowed us to write code that worked. Maybe it didn't work 100% and
> occasionally caused a crash, but that doesn't change the fact it worked.
> It must of worked otherwise people wouldn't of written it that way.

That's fine, and you shouldn't care, I agree.  I argued much the same
point just yesterday in a chat with Ilia.  You do however seem to be
glossing over the fact that this new check can be very helpful.  Take
this case:

  sort(array(3,2,1));

Or any other example where the function in question has no other purpose
than to modify its argument.  When you pass in something to a function
like this which has no permanent storage, chances are pretty high that
this is a bug in the code and you probably want to know about that.  So
I really don't see this as such a black and white case.  I am all for
making this a non-fatal error in all cases to allow scripts to keep
working, but I don't buy the argument that just because we didn't check
for this before we are not allowed to check for it now when it can find
valid bugs like this.

-Rasmus

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to