On 3/18/12 11:18 AM, Michel Fortin wrote:
On 2012-03-18 15:53:42 +0000, deadalnix <deadal...@gmail.com> said:

Le 18/03/2012 16:30, Andrei Alexandrescu a écrit :
On 3/18/12 10:19 AM, Timon Gehr wrote:
No null checks are necessary as long as there is no class that would
create such a very large object.

Yah, we need to insert a rule that prevents creating class objects
larger than 64KB. Java has the same.

Andrei

This is another solution. In this case, we have to ensure that the
first 64kb of the system are page protected to detect null pointer
deference in druntime.

On Mac OS X, the protected area is much smaller. 4 Kb I think on Snow
Leopard 32-bit.

I realized I was mistaken. Just looked at http://docs.oracle.com/javase/specs/jvms/se5.0/html/ClassFile.doc.html#88659 and it seems the number of fields added by a class is limited to 64K, but that's fields not bytes and does not count the fields of the base class.

In order to be safe, a D implementation must figure what is the protected area size and insert null checks for all fields accesses that go beyond that.


Andrei

Reply via email to