@@ -152,5 +152,7 @@ backtrace_vector_release (struct backtrace_state *state ATTRIBUTE_UNUSED,
return 0;
}
vec->alc = 0;
+ if (vec->size == 0)
+ vec->base = NULL;
return 1;
}
@@ -321,5 +321,7 @@ backtrace_vector_release (struct backtrace_state *state,
backtrace_free (state, (char *) vec->base + aligned, alc,
error_callback, data);
vec->alc = 0;
+ if (vec->size == 0)
+ vec->base = NULL;
return 1;
}
@@ -58,6 +58,7 @@ test1 (void)
{
int res;
int failed;
+ void *prev;
struct backtrace_vector vec;
@@ -68,8 +69,9 @@ test1 (void)
vec.size = 0;
count = 0;
+ prev = vec.base;
res = backtrace_vector_release (state, &vec, error_callback, NULL);
- failed = res != 1 || count != 0;
+ failed = res != 1 || count != 0 || vec.base != NULL;
printf ("%s: unittest backtrace_vector_release size == 0\n",
failed ? "FAIL": "PASS");