From 524660d2e3e96ac715623c052338c25a14938dfa Mon Sep 17 00:00:00 2001
From: Nicola Pero <nicola.pero@meta-innovation.com>
Date: Tue, 12 Oct 2010 00:27:02 +0000
Subject: [PATCH] In libobjc/: 2010-10-12 Nicola Pero
 <nicola.pero@meta-innovation.com>

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.

From-SVN: r165348
---
 libobjc/ChangeLog              | 12 ++++++++++++
 libobjc/objc-private/hash.h    |  3 ---
 libobjc/objc/deprecated/hash.h |  3 ---
 libobjc/objc/runtime.h         |  3 ++-
 libobjc/selector.c             |  6 ++++++
 5 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index e2d93108abf8..e66df6a98363 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 7c57a4d25897..ba4c49434381 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 52ee8c313457..8b718a4417d2 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 b15c522235d4..f3a19ec0b237 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 93952fd38344..e51dd20bd9b4 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);
 }
 
-- 
GitLab