aboutsummaryrefslogtreecommitdiff
path: root/libobjc
diff options
context:
space:
mode:
authorNicola Pero <n.pero@mi.flashnet.it>2001-07-16 13:36:24 +0200
committerNicola Pero <nicola@gcc.gnu.org>2001-07-16 11:36:24 +0000
commit42d28de5b2f987923c3211d85f345ff951bd9b90 (patch)
tree82c52c6ed0882d8ec7d413daed169fa41665c57f /libobjc
parent0ae854922acba67407c17b78102c5c90f40858bd (diff)
downloadgcc-42d28de5b2f987923c3211d85f345ff951bd9b90.zip
gcc-42d28de5b2f987923c3211d85f345ff951bd9b90.tar.gz
gcc-42d28de5b2f987923c3211d85f345ff951bd9b90.tar.bz2
Fixed object_is_class and object_is_metaclass
From-SVN: r44039
Diffstat (limited to 'libobjc')
-rw-r--r--libobjc/ChangeLog7
-rw-r--r--libobjc/objc/objc-api.h16
2 files changed, 16 insertions, 7 deletions
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index 6cde604..da205a1 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,10 @@
+Mon Jul 16 12:15:00 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * objc/objc-api.h (object_is_class): Fixed - buggy code was trying
+ to cast an id to a Class, which can not be done. Make the check
+ by using CLS_ISMETA on the class pointer instead.
+ (object_is_meta_class): Similar fix.
+
2001-06-09 Alexandre Oliva <aoliva@redhat.com>, Stephen L Moshier <moshier@mediaone.net>
* configure.in (AC_EXEEXT): Work around in case it expands to
diff --git a/libobjc/objc/objc-api.h b/libobjc/objc/objc-api.h
index d3e22f2..d0e3bb7 100644
--- a/libobjc/objc/objc-api.h
+++ b/libobjc/objc/objc-api.h
@@ -578,21 +578,23 @@ object_get_super_class
}
static inline BOOL
-object_is_class(id object)
+object_is_class (id object)
{
- return CLS_ISCLASS((Class)object);
+ return ((object != nil) && CLS_ISMETA (object->class_pointer));
}
-
+
static inline BOOL
-object_is_instance(id object)
+object_is_instance (id object)
{
- return (object!=nil)&&CLS_ISCLASS(object->class_pointer);
+ return ((object != nil) && CLS_ISCLASS (object->class_pointer));
}
static inline BOOL
-object_is_meta_class(id object)
+object_is_meta_class (id object)
{
- return CLS_ISMETA((Class)object);
+ return ((object != nil)
+ && !object_is_instance (object)
+ && !object_is_class (object));
}
struct sarray*