#13731: Fix libsingular memory management
---------------------------+------------------------------------------------
       Reporter:  nbruin   |         Owner:  rlm     
           Type:  defect   |        Status:  new     
       Priority:  major    |     Milestone:  sage-5.6
      Component:  memleak  |    Resolution:          
       Keywords:           |   Work issues:          
Report Upstream:  N/A      |     Reviewers:          
        Authors:           |     Merged in:          
   Dependencies:           |      Stopgaps:          
---------------------------+------------------------------------------------

Comment (by SimonKing):

 Looking into the upstream sources and trying to find what the gdb
 backtrace is telling, I see in line 667 of `pInline2.h`:
 {{{
 PINLINE2 poly pp_Mult_qq(poly p, poly q, const ring r)
 {
   poly last;
   if (p == NULL || q == NULL) return NULL;

   if (pNext(p) == NULL)
   {
 #ifdef HAVE_PLURAL
     if (rIsPluralRing(r))
       return nc_mm_Mult_pp(p, q, r);
 #endif
     return r->p_Procs->pp_Mult_mm(q, p, r, last);
   }
 }}}
 and line 667 is `return nc_mm_Mult_pp(p, q, r)`. That function is defined
 in `gring.h` (why in a ''header'' file, by the way?). I find no indication
 of "free" being used there, except that it calls
 `r->GetNC()->p_Procs.mm_Mult_pp(...)`, and I have no idea where that
 method is being defined.

 So, I'll ask upstream.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13731#comment:25>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to