From 991d3e71ced0bb2e4c70807831d4c95a59edde51 Mon Sep 17 00:00:00 2001 From: Kresten Krab Thorup Date: Wed, 5 May 1993 08:13:15 +0000 Subject: Headerfiles reorganized From-SVN: r4329 --- gcc/objc/objects.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'gcc/objc/objects.c') 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) -- cgit v1.1