diff options
author | Kresten Krab Thorup <krab@gcc.gnu.org> | 1993-05-05 08:13:15 +0000 |
---|---|---|
committer | Kresten Krab Thorup <krab@gcc.gnu.org> | 1993-05-05 08:13:15 +0000 |
commit | 991d3e71ced0bb2e4c70807831d4c95a59edde51 (patch) | |
tree | 4d203aa1e9ae06ac3a0614c7889a5772a50214bd /gcc/objc/objects.c | |
parent | 84db222add1bde080bbcd48e53a8e8009296eb48 (diff) | |
download | gcc-991d3e71ced0bb2e4c70807831d4c95a59edde51.zip gcc-991d3e71ced0bb2e4c70807831d4c95a59edde51.tar.gz gcc-991d3e71ced0bb2e4c70807831d4c95a59edde51.tar.bz2 |
Headerfiles reorganized
From-SVN: r4329
Diffstat (limited to 'gcc/objc/objects.c')
-rw-r--r-- | gcc/objc/objects.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/gcc/objc/objects.c b/gcc/objc/objects.c index 8bc922b..7574412 100644 --- a/gcc/objc/objects.c +++ b/gcc/objc/objects.c @@ -37,21 +37,34 @@ id (*_objc_object_copy)(id) = __objc_object_copy; id class_create_instance(Class* class) { - id res = (*_objc_object_alloc)(class); - res->class_pointer = class; - return res; + id new = nil; + if (CLS_ISCLASS(class)) + new = (*_objc_object_alloc)(class); + if (new!=nil) + new->class_pointer = class; + return new; } -id +id object_copy(id object) { - return (*_objc_object_copy)(object); + if ((object!=nil)&&CLS_ISCLASS(object->class_pointer)) + return (*_objc_object_copy)(object); + else + return nil; } -id +id object_dispose(id object) { - return (*_objc_object_dispose)(object); + if ((object!=nil)&&CLS_ISCLASS(object->class_pointer)) + { + if (_objc_object_dispose) + (*_objc_object_dispose)(object); + else + free(object); + } + return nil; } id __objc_object_alloc(Class* class) |