summaryrefslogtreecommitdiff
path: root/gnu/lib/libobjc
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2004-12-24 23:31:44 +0000
committerMarc Espie <espie@cvs.openbsd.org>2004-12-24 23:31:44 +0000
commite195f58be7fd86b3a97fa5c207b57d7f85265c2c (patch)
tree2721c05ab2beb2feb016fe74d8530b08a2886bc4 /gnu/lib/libobjc
parent63b6877faf60b551891ff67169613b2e40410649 (diff)
gcc 3.3.5
Diffstat (limited to 'gnu/lib/libobjc')
-rw-r--r--gnu/lib/libobjc/libobjc/ChangeLog52
-rw-r--r--gnu/lib/libobjc/libobjc/Protocol.m22
-rw-r--r--gnu/lib/libobjc/libobjc/objc/hash.h6
3 files changed, 54 insertions, 26 deletions
diff --git a/gnu/lib/libobjc/libobjc/ChangeLog b/gnu/lib/libobjc/libobjc/ChangeLog
index 9dc94ee979f..dcd68585f9e 100644
--- a/gnu/lib/libobjc/libobjc/ChangeLog
+++ b/gnu/lib/libobjc/libobjc/ChangeLog
@@ -1,3 +1,29 @@
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-03-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR bootstrap/14348
+ Backport
+ 2003-10-20 Joseph S. Myers <jsm@polyomino.org.uk>
+ * objc/hash.h (hash_string): Don't use a cast as an lvalue.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-12-01 Zack Weinberg <zack@codesourcery.com>
+
+ PR 11433
+ * Protocol.m (descriptionForInstanceMethod): Don't dereference
+ instance_methods if it's NULL.
+ (descriptionForClassMethod): Likewise for class_methods.
+
2003-10-16 Release Manager
* GCC 3.3.2 Released.
@@ -188,7 +214,7 @@ Mon Dec 17 17:02:12 2001 Nicola Pero <nicola@brainstorm.co.uk>
2001-11-14 Aldy Hernandez <aldyh@redhat.com>
- * encoding.c: Add target_flags.
+ * encoding.c: Add target_flags.
2001-11-07 Aldy Hernandez <aldyh@redhat.com>
@@ -199,18 +225,18 @@ Mon Dec 17 17:02:12 2001 Nicola Pero <nicola@brainstorm.co.uk>
Mon Oct 29 21:29:21 2001 Nicola Pero <n.pero@mi.flashnet.it>
* class.c: Rewritten the class table to use optimized, lock-free
- lookup. This more than doubles the speed of class method
- invocations. (class_table_setup), (class_table_insert),
- (class_table_replace), (class_table_get_safe),
- (class_table_next), (class_table_print),
- (class_table_print_histogram): New functions.
- (__objc_init_class_tables): Use class_table_setup.
- (__objc_add_class_to_hash): Use class_table_get_safe and
- class_table_insert. (objc_lookup_class), (objc_get_class): Do not
- assert the existence of the table; do not lock the runtime; use
- class_table_get_safe. (objc_next_class): Use class_table_next.
- (__objc_resolve_class_links): Use class_table_next.
- (class_pose_as): Use class_table_replace.
+ lookup. This more than doubles the speed of class method
+ invocations. (class_table_setup), (class_table_insert),
+ (class_table_replace), (class_table_get_safe),
+ (class_table_next), (class_table_print),
+ (class_table_print_histogram): New functions.
+ (__objc_init_class_tables): Use class_table_setup.
+ (__objc_add_class_to_hash): Use class_table_get_safe and
+ class_table_insert. (objc_lookup_class), (objc_get_class): Do not
+ assert the existence of the table; do not lock the runtime; use
+ class_table_get_safe. (objc_next_class): Use class_table_next.
+ (__objc_resolve_class_links): Use class_table_next.
+ (class_pose_as): Use class_table_replace.
2001-09-10 Ovidiu Predescu <ovidiu@cup.hp.com>
diff --git a/gnu/lib/libobjc/libobjc/Protocol.m b/gnu/lib/libobjc/libobjc/Protocol.m
index 3c18a02ce97..ab41bfe2ce7 100644
--- a/gnu/lib/libobjc/libobjc/Protocol.m
+++ b/gnu/lib/libobjc/libobjc/Protocol.m
@@ -80,11 +80,12 @@ struct objc_method_description_list {
const char* name = sel_get_name (aSel);
struct objc_method_description *result;
- for (i = 0; i < instance_methods->count; i++)
- {
- if (!strcmp ((char*)instance_methods->list[i].name, name))
- return &(instance_methods->list[i]);
- }
+ if (instance_methods)
+ for (i = 0; i < instance_methods->count; i++)
+ {
+ if (!strcmp ((char*)instance_methods->list[i].name, name))
+ return &(instance_methods->list[i]);
+ }
for (proto_list = protocol_list; proto_list; proto_list = proto_list->next)
{
@@ -107,11 +108,12 @@ struct objc_method_description_list {
const char* name = sel_get_name (aSel);
struct objc_method_description *result;
- for (i = 0; i < class_methods->count; i++)
- {
- if (!strcmp ((char*)class_methods->list[i].name, name))
- return &(class_methods->list[i]);
- }
+ if (class_methods)
+ for (i = 0; i < class_methods->count; i++)
+ {
+ if (!strcmp ((char*)class_methods->list[i].name, name))
+ return &(class_methods->list[i]);
+ }
for (proto_list = protocol_list; proto_list; proto_list = proto_list->next)
{
diff --git a/gnu/lib/libobjc/libobjc/objc/hash.h b/gnu/lib/libobjc/libobjc/objc/hash.h
index e695012aa43..446026c821f 100644
--- a/gnu/lib/libobjc/libobjc/objc/hash.h
+++ b/gnu/lib/libobjc/libobjc/objc/hash.h
@@ -172,10 +172,10 @@ hash_string (cache_ptr cache, const void *key)
{
unsigned int ret = 0;
unsigned int ctr = 0;
+ const char *ckey = key;
-
- while (*(char *) key) {
- ret ^= *(char *) key++ << ctr;
+ while (*ckey) {
+ ret ^= *ckey++ << ctr;
ctr = (ctr + 1) % sizeof (void *);
}