diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-03 23:21:48 +0100 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-03 23:21:48 +0100 |
commit | 94383388101170742989e188e020f91b81a2ddfe (patch) | |
tree | 4b2ecbbcf6cdb7172e8cbc2cb6b2f676fc23706a /Objective-C | |
parent | 046f4e6ecbe2cbef2079eb8a245895ff70238e92 (diff) |
Glue layer: Add slot handling functions.
darcs-hash:27035c01db5e23dc0c8c9786ded92aa6e564e6d4
Diffstat (limited to 'Objective-C')
-rw-r--r-- | Objective-C/libobjcl.m | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/Objective-C/libobjcl.m b/Objective-C/libobjcl.m index f49d502..7c1c186 100644 --- a/Objective-C/libobjcl.m +++ b/Objective-C/libobjcl.m @@ -406,10 +406,15 @@ objcl_class_direct_slots (Class class, unsigned int *count, unsigned int *elemen #ifdef __NEXT_RUNTIME__ ivars = class_copyIvarList (class, count); #else - *count = class->ivars->ivar_count; - ivars = malloc ((*count) * (*element_size)); - for (i = 0; i < *count; i++) - ivars[i] = &class->ivars->ivar_list[i]; + *count = (class->ivars ? class->ivars->ivar_count : 0); + if (!*count) + ivars = NULL; + else + { + ivars = malloc ((*count) * (*element_size)); + for (i = 0; i < *count; i++) + ivars[i] = &class->ivars->ivar_list[i]; + } #endif return ivars; |