From: Julien Pagès Date: Fri, 12 Sep 2014 14:54:31 +0000 (+0200) Subject: nitvm: Throw an error when trying to read an uninitialized attribute X-Git-Tag: v0.6.9~35^2~1 X-Git-Url: http://nitlanguage.org nitvm: Throw an error when trying to read an uninitialized attribute Signed-off-by: Julien Pagès --- diff --git a/src/vm.nit b/src/vm.nit index fd27117..92d2d1f 100644 --- a/src/vm.nit +++ b/src/vm.nit @@ -148,21 +148,22 @@ class VirtualMachine super NaiveInterpreter assert(recv isa MutableInstance) - recv.internal_attributes = init_internal_attributes(null_instance, recv.mtype.as(MClassType).mclass.all_mattributes(mainmodule, none_visibility).length) + recv.internal_attributes = init_internal_attributes(initialization_value, recv.mtype.as(MClassType).mclass.all_mattributes(mainmodule, none_visibility).length) super end # Initialize the internal representation of an object (its attribute values) - private fun init_internal_attributes(null_instance: Instance, size: Int): Pointer + # `init_instance` is the initial value of attributes + private fun init_internal_attributes(init_instance: Instance, size: Int): Pointer import Array[Instance].length, Array[Instance].[] `{ Instance* attributes = malloc(sizeof(Instance) * size); int i; for(i=0; i