Changeset cd2f5e in git


Ignore:
Timestamp:
Apr 7, 1998, 7:00:59 PM (25 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '0604212ebb110535022efecad887940825b97c3f')
Children:
49025e845fcf09ebb03e204de70d06ec1b8149f5
Parents:
c6564845a521c6c8ccc870c1a1c48eb9d26072c4
Message:
* hannes: fixed nasty memory-overwrite bug in kstdfac.cc


git-svn-id: file:///usr/local/Singular/svn/trunk@1345 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/kstdfac.cc

    rc656484 rcd2f5e  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: kstdfac.cc,v 1.14 1998-04-06 17:59:31 obachman Exp $ */
     4/* $Id: kstdfac.cc,v 1.15 1998-04-07 17:00:59 Singular Exp $ */
    55/*
    66*  ABSTRACT -  Kernel: factorizing alg. of Buchberger
     
    258258      Print(" (=S[%d]) -> %d factors\n",si,IDELEMS(fac));
    259259    }
     260    else if (TEST_OPT_PROT)
     261    {
     262      int ii=IDELEMS(fac);
     263      if (ii>1)
     264      {
     265        while(ii>0) { PrintS("F"); ii--; }
     266      }
     267    }
    260268    ideal fac_copy=idInit(IDELEMS(fac),1);
    261269    deleteInS(si,strat);
     
    314322      if (IDELEMS(fac)>1)
    315323      {
    316         idTest(fac_copy);
    317         idTest(n->D);
    318324        if (n->D==NULL)
    319325        {
     
    323329        else
    324330        {
     331          idTest(n->D);
    325332          ideal r=idAdd(n->D,fac_copy);
    326333          idDelete(&n->D);
    327334          n->D=r;
    328335        }
    329         idTest(n->D);
    330336        if (TEST_OPT_DEBUG)
    331337        {
     
    334340          PrintLn();
    335341        }
    336         idTest(n->D);
    337       }
    338 
    339       idTest(fac_copy);
     342      }
    340343
    341344      fac_copy->m[i]=pCopy(fac->m[i]);
    342345      fac->m[i]=NULL;
    343 
    344       idTest(fac_copy);
    345346
    346347      /* check for empty sets */
     
    484485        Print("-> %d factors\n",IDELEMS(fac));
    485486      }
     487      else if (TEST_OPT_PROT)
     488      {
     489        int ii=IDELEMS(fac);
     490        if (ii>1)
     491        {
     492          while(ii>0) { PrintS("F"); ii--; }
     493        }
     494      }
    486495      if ((IDELEMS(fac)==1)&&(facdeg==pFDeg(fac->m[0])))
    487496      {
     
    514523        facdeg=pFDeg(fac->m[i]);
    515524        ideal fac2=singclap_factorize(fac->m[i],NULL,1);
    516 #ifndef HAVE_LIBFAC_P 
     525#ifndef HAVE_LIBFAC_P
    517526        if ((fac2!=NULL)&&(IDELEMS(fac2)>1)&&(facdeg!=pFDeg(fac2->m[0])))
    518527#else
     
    526535            //jjPRINT_MA0((matrix)fac2,"");
    527536          }
     537          else if (TEST_OPT_PROT)
     538          {
     539            int ii=IDELEMS(fac2);
     540            if (ii>1)
     541            {
     542              while(ii>0) { PrintS("F"); ii--; }
     543            }
     544          }
    528545          pDelete(&(fac->m[i]));
    529546          fac->m[i]=fac2->m[0];
    530547          pEnlargeSet(&(fac->m),IDELEMS(fac),IDELEMS(fac2)-1);
     548          pEnlargeSet(&(fac_copy->m),IDELEMS(fac),IDELEMS(fac2)-1);
    531549          memcpy(fac->m+IDELEMS(fac),&(fac2->m[1]),(IDELEMS(fac2)-1)*sizeof(poly
    532550));
    533551          IDELEMS(fac)+=(IDELEMS(fac2)-1);
     552          IDELEMS(fac_copy)=IDELEMS(fac);
    534553         }
    535554      }
     
    554573        else pos=posInS(n->S,n->sl,n->P.p);
    555574        // we have already reduced all elements from fac....
    556         //if (TEST_OPT_INTSTRATEGY)
     575        //if (TEST_OPT_INTSTRATEGY)
    557576        //{
    558577        //  if (!TEST_OPT_MINRES||(n->syzComp==0)||(!n->homog))
     
    590609        if (IDELEMS(fac)>1)
    591610        {
    592           idTest(fac_copy);
    593           idTest(n->D);
    594611          if (n->D==NULL)
    595612          {
     
    599616          else
    600617          {
     618            idTest(n->D);
    601619            ideal r=idAdd(n->D,fac_copy);
    602620            idDelete(&n->D);
    603621            n->D=r;
    604622          }
    605           idTest(n->D);
    606623          if (TEST_OPT_DEBUG)
    607624          {
     
    610627            PrintLn();
    611628          }
    612           idTest(n->D);
    613         }
    614 
    615         idTest(fac_copy);
     629        }
    616630
    617631        fac_copy->m[i]=pCopy(fac->m[i]);
    618632        fac->m[i]=NULL;
    619 
    620         idTest(fac_copy);
    621633
    622634        /* check for empty sets */
     
    652664          }
    653665        }
     666
    654667        /* check for empty sets */
    655668        {
     
    810823            Print("empty set L[%d] because:L[%d]\n",j,i);
    811824          }
    812           // delete L[j], 
     825          // delete L[j],
    813826          i=0; j--;
    814         } 
     827        }
    815828        else
    816829        {
Note: See TracChangeset for help on using the changeset viewer.