s_symbol: Close memory leak of symbol name.
authorCarl Worth <cworth@cworth.org>
Thu, 24 Jun 2010 01:30:55 +0000 (18:30 -0700)
committerCarl Worth <cworth@cworth.org>
Thu, 24 Jun 2010 02:00:42 +0000 (19:00 -0700)
Easily done now that s_expression is allocated with talloc. Simply
switch from new to talloc_strdup and the job is done.

This closes the great majority (11263) of the remaining leaks in the
glsl-orangebook-ch06-bump.frag test:

total heap usage: 55,623 allocs, 55,546 frees
(was 44,283 frees)

This test is now 99.86% leak-free.

s_expression.cpp

index 875d739d84223cb16b55e9deb530130ecc6b8ce2..26be23ea8faceab79b7b5c1fab623454fdc9f18c 100644 (file)
@@ -30,8 +30,8 @@
 
 s_symbol::s_symbol(const char *tmp)
 {
-   this->str = new char [strlen(tmp) + 1];
-   strcpy(this->str, tmp);
+   this->str = talloc_strdup (this, tmp);
+   assert(this->str != NULL);
 }
 
 s_list::s_list()