Changeset 3e7db4 in git for Singular/newstruct.cc
- Timestamp:
- Dec 11, 2012, 7:33:39 PM (11 years ago)
- Branches:
- (u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
- Children:
- 14e634edb64741be0fbc04c9c89e8523cb0c1cc521dbb4186f3a2c56539d8f92abe1ee9e0fa0ae2c
- Parents:
- dcf88ff0bb046d73a7bde65e033fc58cbb5f4a97c9050082385152a64066f7540914cae34d990a43
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/newstruct.cc
rc90500 r3e7db4 57 57 if (p!=NULL) 58 58 { 59 leftvsl;59 BOOLEAN sl; 60 60 sleftv tmp; 61 61 memset(&tmp,0,sizeof(tmp)); … … 70 70 sl=iiMake_proc(&hh,NULL,&tmp); 71 71 72 if ( sl->Typ() == STRING_CMD)73 { 74 char *res = omStrDup((char*) sl->Data());75 sl->CleanUp();72 if ((!sl)&& (iiRETURNEXPR.Typ() == STRING_CMD)) 73 { 74 char *res = omStrDup((char*)iiRETURNEXPR.CopyD()); 75 iiRETURNEXPR.CleanUp(); 76 76 iiRETURNEXPR.Init(); 77 77 return res; 78 78 } 79 sl->CleanUp();79 iiRETURNEXPR.CleanUp(); 80 80 iiRETURNEXPR.Init(); 81 81 } … … 177 177 if (p!=NULL) 178 178 { 179 BOOLEAN sl; 179 180 idrec hh; 180 181 memset(&hh,0,sizeof(hh)); … … 185 186 memset(&tmp,0,sizeof(sleftv)); 186 187 tmp.Copy(r); 187 leftvsl = iiMake_proc(&hh, NULL, &tmp);188 if ( sl != NULL)189 { 190 if ( sl->Typ() == op)191 { 192 l->Copy( sl);188 sl = iiMake_proc(&hh, NULL, &tmp); 189 if (!sl) 190 { 191 if (iiRETURNEXPR.Typ() == op) 192 { 193 l->Copy(&iiRETURNEXPR); 193 194 iiRETURNEXPR.Init(); 194 195 return FALSE; 195 196 } 196 sl->CleanUp();197 iiRETURNEXPR.CleanUp(); 197 198 iiRETURNEXPR.Init(); 198 199 } 199 200 } 200 201 return TRUE; 202 } 203 204 void lClean_newstruct(lists l) 205 { 206 if (l->nr>=0) 207 { 208 int i; 209 ring r=NULL; 210 for(i=l->nr;i>=0;i--) 211 { 212 if ((i>0) && (l->m[i-1].rtyp==RING_CMD)) 213 r=(ring)(l->m[i-1].data); 214 else 215 r=NULL; 216 l->m[i].CleanUp(r); 217 } 218 omFreeSize((ADDRESS)l->m, (l->nr+1)*sizeof(sleftv)); 219 l->nr=-1; 220 } 221 omFreeBin((ADDRESS)l,slists_bin); 201 222 } 202 223 … … 242 263 { 243 264 lists n1=(lists)l->Data(); 244 n1->Clean(); n1=NULL;265 lClean_newstruct(n1); 245 266 } 246 267 lists n2=(lists)r->Data(); … … 258 279 } 259 280 260 else if(l->Typ() > MAX_TOK)281 else 261 282 { 262 283 assume(l->Typ() > MAX_TOK); … … 280 301 if (p!=NULL) 281 302 { 282 leftvsl;303 BOOLEAN sl; 283 304 sleftv tmp; 284 305 memset(&tmp,0,sizeof(sleftv)); … … 290 311 hh.data.pinf=p->p; 291 312 sl=iiMake_proc(&hh,NULL,&tmp); 292 if (sl ==NULL) return TRUE;313 if (sl) return TRUE; 293 314 else 294 315 { 295 res->Copy( sl);316 res->Copy(&iiRETURNEXPR); 296 317 iiRETURNEXPR.Init(); 297 318 return FALSE; … … 409 430 if (p!=NULL) 410 431 { 411 leftvsl;432 BOOLEAN sl; 412 433 sleftv tmp; 413 434 memset(&tmp,0,sizeof(sleftv)); … … 421 442 hh.data.pinf=p->p; 422 443 sl=iiMake_proc(&hh,NULL,&tmp); 423 if (sl ==NULL) return TRUE;444 if (sl) return TRUE; 424 445 else 425 446 { 426 res->Copy( sl);447 res->Copy(&iiRETURNEXPR); 427 448 iiRETURNEXPR.Init(); 428 449 return FALSE; … … 455 476 if (p!=NULL) 456 477 { 457 leftvsl;478 BOOLEAN sl; 458 479 sleftv tmp; 459 480 memset(&tmp,0,sizeof(sleftv)); … … 465 486 hh.data.pinf=p->p; 466 487 sl=iiMake_proc(&hh,NULL,&tmp); 467 if (sl ==NULL) return TRUE;488 if (sl) return TRUE; 468 489 else 469 490 { 470 res->Copy( sl);491 res->Copy(&iiRETURNEXPR); 471 492 iiRETURNEXPR.Init(); 472 493 return FALSE; … … 474 495 } 475 496 return blackbox_default_OpM(op,res,args); 476 }477 478 void lClean_newstruct(lists l)479 {480 if (l->nr>=0)481 {482 int i;483 ring r=NULL;484 for(i=l->nr;i>=0;i--)485 {486 if ((i>0) && (l->m[i-1].rtyp==RING_CMD))487 r=(ring)(l->m[i-1].data);488 else489 r=NULL;490 l->m[i].CleanUp(r);491 }492 omFreeSize((ADDRESS)l->m, (l->nr+1)*sizeof(sleftv));493 l->nr=-1;494 }495 omFreeBin((ADDRESS)l,slists_bin);496 497 } 497 498 … … 593 594 if (p!=NULL) 594 595 { 595 leftvsl;596 BOOLEAN sl; 596 597 sleftv tmp; 597 598 memset(&tmp,0,sizeof(tmp)); … … 604 605 hh.data.pinf=p->p; 605 606 sl=iiMake_proc(&hh,NULL,&tmp); 606 if ( sl!=NULL) sl->CleanUp();607 if (!sl) iiRETURNEXPR.CleanUp(); 607 608 iiRETURNEXPR.Init(); 608 609 } … … 745 746 return scanNewstructFromString(s,res); 746 747 } 747 748 748 void newstructShow(newstruct_desc d) 749 749 {
Note: See TracChangeset
for help on using the changeset viewer.