Changeset 5e147a in git
- Timestamp:
- Feb 17, 2011, 2:55:39 PM (13 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- a34b097e6dd0af4d8de284923aa311ba5575c32c
- Parents:
- 4a9db3308f70e3c7475877b8e3aa0ec3417427c4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/newstruct.cc
r4a9db33 r5e147a 68 68 for(;n>=0;n--) 69 69 { 70 if (RingDependend(L->m[n].rtyp) 71 && (L->m[n].data!=NULL)) 72 { 73 assume(L->m[n-1].rtyp==RING_CMD); 74 if((L->m[n-1].data!=NULL)&&(L->m[n-1].data!=(void*)currRing)) 75 rChangeCurrRing((ring)(L->m[n-1].data)); 76 N->m[n].Copy(&L->m[n]); 70 if (RingDependend(L->m[n].rtyp)) 71 { 72 assume((L->m[n-1].rtyp==RING_CMD) || (L->m[n-1].data==NULL)); 73 if(L->m[n-1].data!=NULL) 74 { 75 if (L->m[n-1].data!=(void*)currRing) 76 rChangeCurrRing((ring)(L->m[n-1].data)); 77 N->m[n].Copy(&L->m[n]); 78 } 79 else 80 { 81 N->m[n].rtyp=L->m[n].rtyp; 82 N->m[n].data=idrecDataInit(L->m[n].rtyp); 83 } 84 } 85 else if((L->m[n].rtyp>MAX_TOK)||(L->m[n].rtyp==LIST_CMD)) 86 { 87 N->m[n].rtyp=L->m[n].rtyp; 88 N->m[n].data=(void *)lCopy_newstruct((lists)(L->m[n].data)); 77 89 } 78 90 else … … 141 153 { 142 154 if (al->m[nm->pos].data==NULL) 143 144 145 146 147 148 149 150 151 152 155 { 156 // NULL belongs to any ring 157 ring r=(ring)al->m[nm->pos-1].data; 158 if (r!=NULL) 159 { 160 r->ref--; 161 al->m[nm->pos-1].data=NULL; 162 al->m[nm->pos-1].rtyp=DEF_CMD; 163 } 164 } 153 165 else 154 166 { … … 162 174 } 163 175 if ((currRing!=NULL)&&(al->m[nm->pos-1].data==NULL)) 164 165 166 167 168 169 176 { 177 // remember the ring, if not already set 178 al->m[nm->pos-1].data=(void *)currRing; 179 al->m[nm->pos-1].rtyp=RING_CMD; 180 currRing->ref++; 181 } 170 182 } 171 183 Subexpr r=(Subexpr)omAlloc0Bin(sSubexpr_bin); … … 248 260 Werror("type change in member %s (%s(%d) -> %s(%d))",nm->name, 249 261 Tok2Cmdname(nm->typ),nm->typ, 250 262 Tok2Cmdname(l->m[nm->pos].rtyp),l->m[nm->pos].rtyp); 251 263 return TRUE; 252 264 }
Note: See TracChangeset
for help on using the changeset viewer.