summaryrefslogtreecommitdiffstats
path: root/Object.h
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2020-10-04 17:55:08 +0200
committercgzones <cgzones@googlemail.com>2020-10-07 13:01:53 +0200
commit08d85e61435e43ade490ecef16437f93c0d88bed (patch)
treefd7357e4a53f7786b5001ef128ffa8e473570f00 /Object.h
parent164051354f11c0426e09e4fa09feeca7de92e619 (diff)
Mark Object classes and Object class fields const
Diffstat (limited to 'Object.h')
-rw-r--r--Object.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/Object.h b/Object.h
index 6fafd4e1..0d0e0036 100644
--- a/Object.h
+++ b/Object.h
@@ -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

© 2014-2024 Faster IT GmbH | imprint | privacy policy