diff options
author | Christian Göttsche <cgzones@googlemail.com> | 2020-10-04 17:55:08 +0200 |
---|---|---|
committer | cgzones <cgzones@googlemail.com> | 2020-10-07 13:01:53 +0200 |
commit | 08d85e61435e43ade490ecef16437f93c0d88bed (patch) | |
tree | fd7357e4a53f7786b5001ef128ffa8e473570f00 /Object.h | |
parent | 164051354f11c0426e09e4fa09feeca7de92e619 (diff) |
Mark Object classes and Object class fields const
Diffstat (limited to 'Object.h')
-rw-r--r-- | Object.h | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -19,26 +19,26 @@ typedef long(*Object_Compare)(const void*, const void*); typedef void(*Object_Delete)(Object*); #define Object_getClass(obj_) ((Object*)(obj_))->klass -#define Object_setClass(obj_, class_) Object_getClass(obj_) = (ObjectClass*) class_ +#define Object_setClass(obj_, class_) Object_getClass(obj_) = (const ObjectClass*) class_ #define Object_delete(obj_) Object_getClass(obj_)->delete((Object*)(obj_)) #define Object_displayFn(obj_) Object_getClass(obj_)->display #define Object_display(obj_, str_) Object_getClass(obj_)->display((Object*)(obj_), str_) #define Object_compare(obj_, other_) Object_getClass(obj_)->compare((const void*)(obj_), other_) -#define Class(class_) ((ObjectClass*)(&(class_ ## _class))) +#define Class(class_) ((const ObjectClass*)(&(class_ ## _class))) #define AllocThis(class_) (class_*) xMalloc(sizeof(class_)); Object_setClass(this, Class(class_)); typedef struct ObjectClass_ { - const void* extends; + const void* const extends; const Object_Display display; const Object_Delete delete; const Object_Compare compare; } ObjectClass; struct Object_ { - ObjectClass* klass; + const ObjectClass* klass; }; typedef union { @@ -46,7 +46,7 @@ typedef union { void* v; } Arg; -extern ObjectClass Object_class; +extern const ObjectClass Object_class; #ifndef NDEBUG |