From: Boris Boesler Date: Wed, 11 Jul 2001 08:52:44 +0000 (+0000) Subject: minor bug fix to previous changes X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=5c418faf6369db9dc35276cc3f217b47ebe10560;p=libfirm minor bug fix to previous changes [r222] --- diff --git a/ir/tr/type.c b/ir/tr/type.c index b7a14d2cc..f1b6b28bd 100644 --- a/ir/tr/type.c +++ b/ir/tr/type.c @@ -188,11 +188,11 @@ void remove_class_member(type *clss, entity *member) { assert(clss && (clss->type_op == type_class)); for (i = 1; i < (ARR_LEN (clss->attr.ca.members))-1; i++) if (clss->attr.ca.members[i+1] == member) { + for(i++; i < (ARR_LEN (clss->attr.ca.members)) - 1; i++) + clss->attr.ca.members[i] = clss->attr.ca.members[i + 1]; + ARR_SETLEN(entity*, clss->attr.ca.members, ARR_LEN(clss->attr.ca.members) - 1); break; } - for(i++; i < (ARR_LEN (clss->attr.ca.members))-1; i++) - clss->attr.ca.members[i] = clss->attr.ca.members[i+1]; - --_ARR_DESCR((clss->attr.ca.members))->nelts; } void add_class_subtype (type *clss, type *subtype) { @@ -217,11 +217,11 @@ void remove_class_subtype(type *clss, type *subtype) { assert(clss && (clss->type_op == type_class)); for (i = 1; i < (ARR_LEN (clss->attr.ca.subtypes))-1; i++) if (clss->attr.ca.subtypes[i+1] == subtype) { + for(i++; i < (ARR_LEN (clss->attr.ca.subtypes))-1; i++) + clss->attr.ca.subtypes[i] = clss->attr.ca.subtypes[i+1]; + ARR_SETLEN(entity*, clss->attr.ca.subtypes, ARR_LEN(clss->attr.ca.subtypes) - 1); break; } - for(i++; i < (ARR_LEN (clss->attr.ca.subtypes))-1; i++) - clss->attr.ca.subtypes[i] = clss->attr.ca.subtypes[i+1]; - --_ARR_DESCR((clss->attr.ca.subtypes))->nelts; } void add_class_supertype (type *clss, type *supertype) { @@ -246,11 +246,11 @@ void remove_class_supertype(type *clss, type *supertype) { assert(clss && (clss->type_op == type_class)); for (i = 1; i < (ARR_LEN (clss->attr.ca.supertypes))-1; i++) if (clss->attr.ca.supertypes[i+1] == supertype) { + for(i++; i < (ARR_LEN (clss->attr.ca.supertypes))-1; i++) + clss->attr.ca.supertypes[i] = clss->attr.ca.supertypes[i+1]; + ARR_SETLEN(entity*, clss->attr.ca.supertypes, ARR_LEN(clss->attr.ca.supertypes) - 1); break; } - for(i++; i < (ARR_LEN (clss->attr.ca.supertypes))-1; i++) - clss->attr.ca.supertypes[i] = clss->attr.ca.supertypes[i+1]; - --_ARR_DESCR((clss->attr.ca.supertypes))->nelts; } /* typecheck */ bool is_class_type(type *clss) { @@ -291,11 +291,11 @@ void remove_struct_member(type *strct, entity *member) { assert(strct && (strct->type_op == type_struct)); for (i = 1; i < (ARR_LEN (strct->attr.sa.members))-1; i++) if (strct->attr.sa.members[i+1] == member) { + for(i++; i < (ARR_LEN (strct->attr.sa.members))-1; i++) + strct->attr.sa.members[i] = strct->attr.sa.members[i+1]; + ARR_SETLEN(entity*, strct->attr.sa.members, ARR_LEN(strct->attr.sa.members) - 1); break; } - for(i++; i < (ARR_LEN (strct->attr.sa.members))-1; i++) - strct->attr.sa.members[i] = strct->attr.sa.members[i+1]; - --_ARR_DESCR((strct->attr.sa.members))->nelts; } /* typecheck */ bool is_struct_type(type *strct) { @@ -414,11 +414,11 @@ void remove_union_member(type *uni, entity *member) { assert(uni && (uni->type_op == type_union)); for (i = 1; i < (ARR_LEN (uni->attr.ua.members))-1; i++) if (uni->attr.ua.members[i+1] == member) { + for(i++; i < (ARR_LEN (uni->attr.ua.members))-1; i++) + uni->attr.ua.members[i] = uni->attr.ua.members[i+1]; + ARR_SETLEN(entity*, uni->attr.ua.members, ARR_LEN(uni->attr.ua.members) - 1); break; } - for(i++; i < (ARR_LEN (uni->attr.ua.members))-1; i++) - uni->attr.ua.members[i] = uni->attr.ua.members[i+1]; - --_ARR_DESCR((uni->attr.ua.members))->nelts; } /* typecheck */