[ros-users] Fix for big memory leak in frame_common

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
+ frame.cpp.diff (text/x-patch)
Delete this message
Reply to this message
Author: Abe Bachrach
Date:  
To: Kurt Konolige, ros-users
Subject: [ros-users] Fix for big memory leak in frame_common
Hey Kurt,
In playing around with the vslam_system a bit, I found the source of a big
memory leak in frame_common (was leaking an image size buffer on each
frame).

The destructor for the DenseStereo object was not being called since the
pointer to was of type FrameStereo

I've attached a diff for the changes to the file
wg-ros-pkg-unreleased/vision/frame_common/src/frame.cpp
that fixes the memory leak

The memory usage still seems to grow slowly over time when running just the
VO (no place recognition or pose graph optimization), so there may be a
small leak somewhere else but this one was the major one...

-=Abe
Index: frame.cpp
===================================================================
--- frame.cpp    (revision 38605)
+++ frame.cpp    (working copy)
@@ -225,7 +225,11 @@
     else
       frame.goodPts[i] = false;
       }
-    delete st;
+    if (doSparse)
+      delete ((SparseStereo *)st);
+    else
+      delete ((DenseStereo *)st);
+
   }


} // end namespace frame_common