diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2006-07-11 06:13:32 +0000 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2006-07-11 06:13:32 +0000 |
commit | 5d48ab8c28925f892e8e7f432f7d2b78c86e95c5 (patch) | |
tree | 13a209d132be00e28d24f9ce750a873055cfbd98 /Object.h | |
parent | 4c41e78bbfe34c67db16bbce8e0241ba583e8572 (diff) |
Performance improvement hackathon: improve process comparison routines,
disable useless code in release builds such as runtime type-checking on
dynamic data structures and process fields that are not being computed,
faster(?) method for verifying the process owner (still need to ensure
correctness), don't destroy and create process objects for hidden kernel
threads over and over. Phew. I shouldn't be doing all this today, but I
could not resist.
Diffstat (limited to 'Object.h')
-rw-r--r-- | Object.h | 23 |
1 files changed, 17 insertions, 6 deletions
@@ -17,27 +17,38 @@ in the source distribution for its full text. #include "debug.h" + +#ifndef DEBUG +#define Object_setClass(obj, class) +#endif + typedef struct Object_ Object; typedef void(*Object_Display)(Object*, RichString*); -typedef int(*Object_Compare)(const Object*, const Object*); +typedef int(*Object_Compare)(const void*, const void*); typedef void(*Object_Delete)(Object*); struct Object_ { + #ifdef DEBUG char* class; + #endif Object_Display display; - Object_Compare compare; Object_Delete delete; }; -void Object_new(); +#ifdef DEBUG +extern char* OBJECT_CLASS; -bool Object_instanceOf(Object* this, char* class); +#else +#define OBJECT_CLASS NULL +#endif + +#ifdef DEBUG -void Object_delete(Object* this); +void Object_setClass(void* this, char* class); void Object_display(Object* this, RichString* out); -int Object_compare(const Object* this, const Object* o); +#endif #endif |