1.1 --- a/templates/native/introspection.c Thu Mar 23 16:40:57 2017 +0100
1.2 +++ b/templates/native/introspection.c Thu Mar 23 23:36:32 2017 +0100
1.3 @@ -32,7 +32,7 @@
1.4 __attr * const name = &__args[2];
1.5 __attr * const _default = &__args[3];
1.6 /* name.__data__ interpreted as string */
1.7 - __attr key = __load_via_object(name->value, __key__);
1.8 + __attr key = __load_via_object(__VALUE(*name), __key__);
1.9 __attr out;
1.10
1.11 if ((key.code == 0) && (key.pos == 0))
1.12 @@ -40,13 +40,13 @@
1.13
1.14 /* Attempt to get the attribute from the object. */
1.15
1.16 - out = __check_and_load_via_object_null(obj->value, key.pos, key.code);
1.17 - if (out.value == 0)
1.18 + out = __check_and_load_via_object_null(__VALUE(*obj), key.pos, key.code);
1.19 + if (__ISNULL(out))
1.20 {
1.21 /* Inspect the object's class if this failed. */
1.22
1.23 - out = __check_and_load_via_class__(obj->value, key.pos, key.code);
1.24 - if (out.value == 0)
1.25 + out = __check_and_load_via_class__(__VALUE(*obj), key.pos, key.code);
1.26 + if (__ISNULL(out))
1.27 return *_default;
1.28
1.29 /* Update the context to the object if it is a method. */
1.30 @@ -63,7 +63,7 @@
1.31 __attr * const cls = &__args[2];
1.32
1.33 /* cls must be a class. */
1.34 - if (__is_instance_subclass(obj->value, *cls))
1.35 + if (__is_instance_subclass(__VALUE(*obj), *cls))
1.36 return __builtins___boolean_True;
1.37 else
1.38 return __builtins___boolean_False;
1.39 @@ -75,7 +75,7 @@
1.40 __attr * const cls = &__args[2];
1.41
1.42 /* obj and cls must be classes. */
1.43 - if (__is_subclass(obj->value, *cls))
1.44 + if (__is_subclass(__VALUE(*obj), *cls))
1.45 return __builtins___boolean_True;
1.46 else
1.47 return __builtins___boolean_False;