Changeset 61c85ae in git


Ignore:
Timestamp:
Mar 8, 2017, 5:54:10 PM (7 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
Children:
5cc0fd21d7f549ea951ad44d836a08bb7bc146e5
Parents:
43fb497b3647d8eb6ab43424608bb388555ff96e
Message:
fix: move CleanUp for converted stuff to iiConvert
Location:
Singular
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • Singular/iparith.cc

    r43fb497 r61c85ae  
    79687968                omFreeBin((ADDRESS)an, sleftv_bin);
    79697969                omFreeBin((ADDRESS)bn, sleftv_bin);
    7970                 a->CleanUp();
    7971                 b->CleanUp();
    79727970                return FALSE;
    79737971              }
     
    81988196              an->CleanUp();
    81998197              omFreeBin((ADDRESS)an, sleftv_bin);
    8200               a->CleanUp();
    82018198              return failed;
    82028199            }
     
    83848381                  omFreeBin((ADDRESS)cn, sleftv_bin);
    83858382                  //Print("op: %d,result typ:%d\n",op,res->rtyp);
    8386                   a->CleanUp();
    8387                   b->CleanUp();
    8388                   c->CleanUp();
    83898383                  return FALSE;
    83908384                }
  • Singular/ipconv.cc

    r43fb497 r61c85ae  
    454454            number n=(pGetCoeff((poly)input->data));
    455455            n_Write(n, currRing->cf);
    456             (pGetCoeff((poly)input->data))=n;
     456            (pGetCoeff((poly)input->data))=n; // n_Write may have changed n
    457457            output->name=StringEndS();
    458458          }
     
    464464        number n=(number)input->data;
    465465        n_Write(n, currRing->cf);
    466         input->data=(void*)n;
     466        input->data=(void*)n; // n_Write may have changed n
    467467        output->name=StringEndS();
    468468      }
     
    471471        /* no need to preserve name: use it */
    472472        output->name=input->name;
    473         memset(input,0,sizeof(*input));
     473        input->name=NULL;
    474474      }
    475475    }
    476476    output->next=input->next;
    477477    input->next=NULL;
     478    if (!errorreported) input->CleanUp();
    478479    return errorreported;
    479480  }
     
    512513      output->next=input->next;
    513514      input->next=NULL;
    514   //if (outputType==MATRIX_CMD) Print("convert %d -> matrix\n",inputType);
     515      if ((input->rtyp!=IDHDL) && (input->attribute!=NULL))
     516      {
     517        input->attribute->killAll(currRing);
     518        input->attribute=NULL;
     519      }
     520      if (input->e!=NULL)
     521      {
     522        Subexpr h;
     523        while (input->e!=NULL)
     524        {
     525          h=input->e->next;
     526          omFreeBin((ADDRESS)input->e, sSubexpr_bin);
     527          input->e=h;
     528        }
     529      }
     530      //input->Init(); // seems that input (rtyp?) is still needed
    515531      return FALSE;
    516532    }
Note: See TracChangeset for help on using the changeset viewer.