2006-02-10 Jeremy Bettis <jeremy@deadbeef.com>

* init.c (objc_init_statics, __objc_init_protocols): Fix to GCC bug 23214
		(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23214) In some odd circumstances
		protocols are not properly initalized.  See the Bugzilla page for testcase.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/libobjc/trunk@22463 72102866-910b-0410-8b05-ffd578937521
main
jbettis 20 years ago
parent 9bca427c75
commit af1fcec2ed

@ -1,3 +1,9 @@
2006-02-10 Jeremy Bettis <jeremy@deadbeef.com>
* init.c (objc_init_statics, __objc_init_protocols): Fix to GCC bug 23214
(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23214) In some odd circumstances
protocols are not properly initalized. See the Bugzilla page for testcase.
2006-02-10 Jeremy Bettis <jeremy@deadbeef.com> 2006-02-10 Jeremy Bettis <jeremy@deadbeef.com>
* thr-win32.c: There is no such define __MINGW__, changed to __MINGW32__ * thr-win32.c: There is no such define __MINGW__, changed to __MINGW32__

@ -460,7 +460,8 @@ objc_init_statics (void)
haven't been here before. However, the comparison is to be haven't been here before. However, the comparison is to be
reminded of taking into account class posing and to think about reminded of taking into account class posing and to think about
possible semantics... */ possible semantics... */
else if (class != statics->instances[0]->class_pointer) /* Due to a compiler bug, sometimes statics->instances[0]->class_pointer == class but statics->instances[1]->class_pointer == NULL */
else
{ {
id *inst; id *inst;
@ -875,6 +876,9 @@ __objc_init_protocols (struct objc_protocol_list *protos)
(int) ((char *) protos->list[i]->class_pointer (int) ((char *) protos->list[i]->class_pointer
- (char *) 0), - (char *) 0),
PROTOCOL_VERSION); PROTOCOL_VERSION);
} else {
/* even if the protocol is initialized, the super protos might not be */
__objc_init_protocols (aProto->protocol_list);
} }
} }

Loading…
Cancel
Save