Index: tol/btol/serie_type/tsrgrav.cpp
===================================================================
--- tol/btol/serie_type/tsrgrav.cpp	(revision 0d88c157a545cc6512c0ebac4f0bfdf70adc27f7)
+++ tol/btol/serie_type/tsrgrav.cpp	(revision 1efd6f9645a5389159144647e18bdcc8a194d858)
@@ -635,9 +635,9 @@
         BDate d=FirstDate();
         BDat  lastNotEqual = val;
-        GetLength();
-        Ser()->GetData(data_, FirstDate(),LastDate(),Length());
+        int len = GetLength();
+        Ser()->GetData(data_, FirstDate(),LastDate(),len);
         BHash hash; Dating()->GetHashBetween(hash, FirstDate(),LastDate());
         BReal h = dte.Hash();
-        for(; n<Length(); n++)
+        for(; n<len; n++)
         {
           if(data_[n]==val)
@@ -751,6 +751,6 @@
       else
       {
-        GetLength();
-        Ser()->GetData(data_,FirstDate(),LastDate(),Length());
+        int len = GetLength();
+        Ser()->GetData(data_,FirstDate(),LastDate(),len);
         
         BInt n=0;
@@ -833,5 +833,6 @@
   if(dating && (dating->Inf()<=dte) && (dating->Sup()>=dte))
   {
-    if(!Length())
+    int len = GetLength();
+    if(!len)
     {
       dat = 0.0;
@@ -848,23 +849,25 @@
       BData serData;
       ser_->GetData(serData);
-
-
       BHash hash; Dating()->GetHashBetween(hash, firstDate_,lastDate_);
       Realloc(hash.Size());
-      BInt  n;
+      BInt  n, p, m;
       BDate d;
       BReal h = dte.Hash();
-
-      for(n=0; n<Length(); n++)
+      BDat x;
+      int len = GetLength();
+      for(n=0; n<len; n++)
       {
         data_[n] = 0.0;
-        for(BInt p = 0; p<pol_.Size(); p++)
+      }
+      for(p=0; p<pol_.Size(); p++)
+      {
+        BMonome<BDat>& mon = pol_[p];
+        for(n=0; n<len; n++)
         {
-    BInt m    = n-pol_[p].Degree()+backward_;
-    BDat  x    = serData[m];
-    data_[n] += pol_[p].Coef()*x;
+          m    = n-mon.Degree()+backward_;
+          x    = serData[m];
+          data_[n] += mon.Coef()*x;
         }
         if(hash[n]==h) { dat = data_[n]; }
-
       }
       CompactData();
@@ -963,6 +966,6 @@
         BReal h0 = ser_->FirstDate().Hash();
         BReal h  = dte.Hash();
-
-        for(n=0; (n<Length()) && (hash[n]<h0); n++)
+        int len = GetLength();
+        for(n=0; (n<len) && (hash[n]<h0); n++)
         {
     data_[n] = (*ini_)[HashToDte(hash[n])];
@@ -970,5 +973,5 @@
         }
 
-        for(; n<Length(); n++)
+        for(; n<len; n++)
         {
     data_[n] = (*ser_)[HashToDte(hash[n])];
@@ -1243,5 +1246,6 @@
         {
           BDat pivot = data_[n];
-          for(BInt m=n; m<Length(); m++)
+          int len = GetLength();
+          for(BInt m=n; m<len; m++)
           {
             data_[m] -= expand[m-n]*pivot;
