fixed leak

fixed build if !HAVE_BACKTRACE
This commit is contained in:
Martin Willi
2008-11-06 14:05:58 +00:00
parent e76078e877
commit ebf0e20ae7
+7 -3
View File
@@ -103,6 +103,7 @@ static void log_(private_backtrace_t *this, FILE *file)
}
fputc(c, file);
}
pclose(output);
}
else
{
@@ -163,12 +164,15 @@ backtrace_t *backtrace_create(int skip)
{
private_backtrace_t *this;
void *frames[50];
int frame_count;
int frame_count = 0;
#ifdef HAVE_BACKTRACE
frame_count = backtrace(frames, countof(frames));
#endif /* HAVE_BACKTRACE */
frame_count = max(frame_count - skip, 0);
this = malloc(sizeof(private_backtrace_t) + frame_count * sizeof(void*));
this->frame_count = frame_count - skip;
memcpy(this->frames, frames + skip, this->frame_count * sizeof(void*));
memcpy(this->frames, frames + skip, frame_count * sizeof(void*));
this->frame_count = frame_count;
this->public.log = (void(*)(backtrace_t*,FILE*))log_;
this->public.contains_function = (bool(*)(backtrace_t*, char *function))contains_function;