src/ObjectVisitor.h
changeset 146 dc7d3b7a918c
parent 145 e9d804821c48
child 147 9c544823d090
     1.1 --- a/src/ObjectVisitor.h	Wed Aug 01 22:32:59 2012 -0700
     1.2 +++ b/src/ObjectVisitor.h	Sat Aug 04 17:51:43 2012 -0700
     1.3 @@ -29,6 +29,7 @@
     1.4  #include "Array.h"
     1.5  #include "Strings.h"
     1.6  #include "Environments.h"
     1.7 +#include "Structures.h"
     1.8  
     1.9  namespace ke {
    1.10  
    1.11 @@ -48,6 +49,7 @@
    1.12          visitField(obj, Type::offsetOfReturnType());
    1.13          visitField(obj, Type::offsetOfParameters());
    1.14          visitField(obj, Type::offsetOfName());
    1.15 +        visitField(obj, Type::offsetOfFields());
    1.16          return sizeof(Type);
    1.17      }
    1.18  
    1.19 @@ -95,6 +97,12 @@
    1.20          return sizeof(Function);
    1.21      }
    1.22  
    1.23 +    size_t iterateDescriptor(Object *obj) {
    1.24 +        visitField(obj, Descriptor::offsetOfName());
    1.25 +        visitField(obj, Descriptor::offsetOfType());
    1.26 +        return sizeof(Descriptor);
    1.27 +    }
    1.28 +
    1.29      size_t iterateNative(Object *obj) {
    1.30          visitField(obj, Native::offsetOfType());
    1.31          visitField(obj, Native::offsetOfName());
    1.32 @@ -173,6 +181,9 @@
    1.33            case MapKind_Function:
    1.34              return iterateFunction(obj);
    1.35  
    1.36 +          case MapKind_Descriptor:
    1.37 +            return iterateDescriptor(obj);
    1.38 +
    1.39            case MapKind_String:
    1.40              return iterateString(obj);
    1.41  
    1.42 @@ -223,6 +234,9 @@
    1.43        case MapKind_Module:
    1.44          return sizeof(Module);
    1.45  
    1.46 +      case MapKind_Descriptor:
    1.47 +        return sizeof(Descriptor);
    1.48 +
    1.49        case MapKind_Function:
    1.50          return sizeof(Function);
    1.51