summaryrefslogtreecommitdiff
path: root/libobjc
diff options
context:
space:
mode:
authornicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-12 00:27:02 +0000
committernicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-12 00:27:02 +0000
commitf9c4db38bb3400de0b809ed37f01b2949ea16558 (patch)
tree8c826840b836b21623b2673ebb37f3ee7aff55ab /libobjc
parentd6ae08fdf352a4313b066c07df5f7365cf6d2c83 (diff)
downloadgcc-f9c4db38bb3400de0b809ed37f01b2949ea16558.tar.gz
In libobjc/:
2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com> * selector.c (sel_getName): Return "<null selector>" for a NULL argument. (sel_get_name): Return 0 for a NULL argument. * objc/runtime.h (sel_getName): Updated documentation. * objc-private/hash.h (class_hash_table): Unused declaration removed. (module_hash_table): Same. * objc/deprecated/hash.h: Same changes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165348 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libobjc')
-rw-r--r--libobjc/ChangeLog12
-rw-r--r--libobjc/objc-private/hash.h3
-rw-r--r--libobjc/objc/deprecated/hash.h3
-rw-r--r--libobjc/objc/runtime.h3
-rw-r--r--libobjc/selector.c6
5 files changed, 20 insertions, 7 deletions
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index e2d93108abf..e66df6a9836 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,15 @@
+2010-10-12 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * selector.c (sel_getName): Return "<null selector>" for a NULL
+ argument.
+ (sel_get_name): Return 0 for a NULL argument.
+ * objc/runtime.h (sel_getName): Updated documentation.
+
+ * objc-private/hash.h (class_hash_table): Unused declaration
+ removed.
+ (module_hash_table): Same.
+ * objc/deprecated/hash.h: Same changes.
+
2010-10-11 Nicola Pero <nicola.pero@meta-innovation.com>
* class.c (objc_getClassList): New.
diff --git a/libobjc/objc-private/hash.h b/libobjc/objc-private/hash.h
index 7c57a4d2589..ba4c4943438 100644
--- a/libobjc/objc-private/hash.h
+++ b/libobjc/objc-private/hash.h
@@ -104,9 +104,6 @@ typedef struct cache
} *cache_ptr;
-/* Two important hash tables. */
-extern cache_ptr module_hash_table, class_hash_table;
-
/* Allocate and initialize a hash table. */
cache_ptr objc_hash_new (unsigned int size,
diff --git a/libobjc/objc/deprecated/hash.h b/libobjc/objc/deprecated/hash.h
index 52ee8c31345..8b718a4417d 100644
--- a/libobjc/objc/deprecated/hash.h
+++ b/libobjc/objc/deprecated/hash.h
@@ -104,9 +104,6 @@ typedef struct cache
} *cache_ptr;
-/* Two important hash tables. */
-extern cache_ptr module_hash_table, class_hash_table;
-
/* Allocate and initialize a hash table. */
cache_ptr objc_hash_new (unsigned int size,
diff --git a/libobjc/objc/runtime.h b/libobjc/objc/runtime.h
index b15c522235d..f3a19ec0b23 100644
--- a/libobjc/objc/runtime.h
+++ b/libobjc/objc/runtime.h
@@ -168,7 +168,8 @@ object_getClass (id object)
/** Implementation: the following functions are in selector.c. */
-/* Return the name of a given selector. */
+/* Return the name of a given selector. If 'selector' is NULL, return
+ "<null selector>". */
objc_EXPORT const char *sel_getName (SEL selector);
/* Return the type of a given selector.
diff --git a/libobjc/selector.c b/libobjc/selector.c
index 93952fd3834..e51dd20bd9b 100644
--- a/libobjc/selector.c
+++ b/libobjc/selector.c
@@ -293,6 +293,9 @@ const char *sel_getName (SEL selector)
{
const char *ret;
+ if (selector == NULL)
+ return "<null selector>";
+
objc_mutex_lock (__objc_runtime_mutex);
if ((soffset_decode ((sidx)selector->sel_id) > 0)
&& (soffset_decode ((sidx)selector->sel_id) <= __objc_selector_max_index))
@@ -306,6 +309,9 @@ const char *sel_getName (SEL selector)
/* Traditional GNU Objective-C Runtime API. */
const char *sel_get_name (SEL selector)
{
+ if (selector == NULL)
+ return 0;
+
return sel_getName (selector);
}