Changeset 0771f61 in git


Ignore:
Timestamp:
Aug 29, 2013, 7:20:47 PM (10 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'f875bbaccd0831e36aaed09ff6adeb3eb45aeb94')
Children:
b7f0f6186eab1c696b147ac57fcbd516815f9824
Parents:
9f8c05a875ee27eb1bad4fbba07a54f8b840bdee1bd66a991e79c78005896fceae480efead1db509
Message:
Merge pull request #352 from mmklee/mem_sw

Fix memory leaks in factory
Location:
factory
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • factory/cf_assert.h

    r9f8c05 r0771f61  
    3232#ifdef HAVE_CSTDIO
    3333#include <cstdio>
     34#include <cstdlib>
    3435#else
    3536extern "C" {
  • factory/cf_gcd_smallp.cc

    r9f8c05 r0771f61  
    21242124  if (F == G) return F/Lc(F);
    21252125
     2126  ASSERT (degree (A, 1) == 0, "expected degree (F, 1) == 0");
     2127  ASSERT (degree (B, 1) == 0, "expected degree (G, 1) == 0");
     2128
    21262129  CFMap M,N;
    21272130  int best_level= myCompress (A, B, M, N, false);
     
    21342137
    21352138  Variable x= Variable (1);
    2136   ASSERT (degree (A, x) == 0, "expected degree (F, 1) == 0");
    2137   ASSERT (degree (B, x) == 0, "expected degree (G, 1) == 0");
    21382139
    21392140  //univariate case
     
    22912292  if (Monoms.size() == 0)
    22922293    Monoms= getMonoms (skel);
    2293   if (coeffMonoms == NULL)
    2294     coeffMonoms= new CFArray [skelSize];
     2294
     2295  coeffMonoms= new CFArray [skelSize];
    22952296  j= 0;
    22962297  for (CFIterator i= skel; i.hasTerms(); i++, j++)
     
    23482349  delete[] pM;
    23492350  delete[] pL;
     2351  delete[] coeffMonoms;
    23502352
    23512353  if (alpha.level() != 1 && V_buf != alpha)
     
    23602362  else
    23612363  {
    2362     delete[] coeffMonoms;
    23632364    fail= true;
    23642365    return 0;
     
    23822383  if (F == G) return F/Lc(F);
    23832384
     2385  ASSERT (degree (A, 1) == 0, "expected degree (F, 1) == 0");
     2386  ASSERT (degree (B, 1) == 0, "expected degree (G, 1) == 0");
     2387
    23842388  CFMap M,N;
    23852389  int best_level= myCompress (A, B, M, N, false);
     
    23922396
    23932397  Variable x= Variable (1);
    2394   ASSERT (degree (A, x) == 0, "expected degree (F, 1) == 0");
    2395   ASSERT (degree (B, x) == 0, "expected degree (G, 1) == 0");
    23962398
    23972399  //univariate case
     
    25542556    Monoms= getMonoms (skel);
    25552557
    2556   if (coeffMonoms == NULL)
    2557     coeffMonoms= new CFArray [skelSize];
     2558  coeffMonoms= new CFArray [skelSize];
    25582559
    25592560  j= 0;
     
    28662867    }
    28672868    result= N(result);
     2869    delete[] pEvalPoints;
     2870    delete[] pMat;
     2871    delete[] pL;
     2872    delete[] coeffMonoms;
     2873    delete[] pM;
     2874
     2875    if (bufpEvalPoints != NULL)
     2876      delete [] bufpEvalPoints;
    28682877    if (fdivides (result, F) && fdivides (result, G))
    2869     {
    2870       delete[] pEvalPoints;
    2871       delete[] pMat;
    2872       delete[] pL;
    2873       delete[] pM;
    2874       if (bufpEvalPoints != NULL)
    2875         delete [] bufpEvalPoints;
    28762878      return result;
    2877     }
    28782879    else
    28792880    {
    2880       delete[] pEvalPoints;
    2881       delete[] pMat;
    2882       delete[] pL;
    2883       delete[] coeffMonoms;
    2884       delete[] pM;
    2885       if (bufpEvalPoints != NULL)
    2886         delete [] bufpEvalPoints;
    28872881      fail= true;
    28882882      return 0;
     
    29502944  delete[] pL;
    29512945  delete[] pM;
     2946  delete[] coeffMonoms;
    29522947
    29532948  if (alpha.level() != 1 && V_buf != alpha)
     
    29622957  else
    29632958  {
    2964     delete[] coeffMonoms;
    29652959    fail= true;
    29662960    return 0;
     
    31923186    {
    31933187      CFArray Monoms;
    3194       CFArray *coeffMonoms= NULL;
     3188      CFArray *coeffMonoms;
    31953189      do //second do
    31963190      {
     
    36273621    {
    36283622      CFArray Monoms;
    3629       CFArray* coeffMonoms= NULL;
     3623      CFArray* coeffMonoms;
    36303624
    36313625      do //second do
  • factory/cf_gcd_smallp.h

    r9f8c05 r0771f61  
    7979CanonicalForm sparseGCDFp (const CanonicalForm& A, const CanonicalForm& B)
    8080{
    81   ASSERT (CFFactory::gettype() == GaloisFieldDomain,
    82           "GF as base field expected");
     81  ASSERT (CFFactory::gettype() == FiniteFieldDomain,
     82          "Fp as base field expected");
    8383  CFList list;
    8484  bool topLevel= true;
  • factory/cf_ops.cc

    r9f8c05 r0771f61  
    511511{
    512512    if ( f.inCoeffDomain() )
    513         return 0;
     513    {
     514        if (degs != 0)
     515          return degs;
     516        else
     517          return 0;
     518    }
    514519    else
    515520    {
  • factory/facFqFactorize.cc

    r9f8c05 r0771f61  
    138138  int n= F.level();
    139139  int * degsf= new int [n + 1];
    140   int ** swap;
    141   swap= new int* [n + 1];
     140  int ** swap= new int* [n + 1];
    142141  for (int i= 0; i <= n; i++)
    143142  {
     
    206205  }
    207206
    208   for (i= 0; i <= n; i++)
     207  for (i= 0; i <= F.level(); i++)
    209208    delete [] swap[i];
    210209  delete [] swap;
  • factory/libfac/factor/tmpl_inst.cc

    r9f8c05 r0771f61  
    1515#include "cf_reval.h"
    1616
    17 //#include "templates/ftmpl_array.cc"
     17#include "templates/ftmpl_array.cc"
    1818//#include "templates/ftmpl_factor.cc"
    1919#include "templates/ftmpl_list.cc"
     
    4848#endif
    4949
    50 template class Array<int>;
    51 template class Array<Variable>;
     50//template class Array<int>;
     51//template class Array<Variable>;
    5252
    5353// for database
  • factory/variable.cc

    r9f8c05 r0771f61  
    5252Variable::Variable( int l ) : _level(l)
    5353{
    54     ASSERT( l > 0 && l != LEVELQUOT, "illegal level" );
     54    //ASSERT( l > 0 && l != LEVELQUOT, "illegal level" );
    5555}
    5656
Note: See TracChangeset for help on using the changeset viewer.