diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2004-12-24 23:31:44 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2004-12-24 23:31:44 +0000 |
commit | e195f58be7fd86b3a97fa5c207b57d7f85265c2c (patch) | |
tree | 2721c05ab2beb2feb016fe74d8530b08a2886bc4 /gnu/lib/libobjc | |
parent | 63b6877faf60b551891ff67169613b2e40410649 (diff) |
gcc 3.3.5
Diffstat (limited to 'gnu/lib/libobjc')
-rw-r--r-- | gnu/lib/libobjc/libobjc/ChangeLog | 52 | ||||
-rw-r--r-- | gnu/lib/libobjc/libobjc/Protocol.m | 22 | ||||
-rw-r--r-- | gnu/lib/libobjc/libobjc/objc/hash.h | 6 |
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 *); } |