memory tracking fix

'heaputil' is producing a lot of complaints.  This fixes one of them,
about freeing memory that was never allocated.  In this case, it's
when removing an overview annotation for a level.  The annotation
is using dupstr_n() and not being recorded due to dupstr_n() being
placed after MONITOR_HEAP undefines the macro that overrides alloc().

There's only one use of dupstr_n(), and its length checking isn't
needed there, so just switch to dupstr() and comment out the
implementation of dupstr_n().  I left the prototype in extern.h;
that's harmless.

If dupstr_n() needs to be resurrected, a second MONITOR_HEAP-aware
version should be implemented, with corresponding macro to choose
which one to use.
This commit is contained in:
PatR
2025-04-17 10:06:46 -07:00
parent 178bd3a988
commit f1ba320cb3
2 changed files with 11 additions and 10 deletions

View File

@@ -246,6 +246,8 @@ dupstr(const char *string)
return strcpy((char *) alloc(len + 1), string);
}
#if 0 /* suppress this; if included, it will need a MONITOR_HEAP edition */
/* similar for reasonable size strings, but return length of input as well */
char *
dupstr_n(const char *string, unsigned int *lenout)
@@ -257,7 +259,7 @@ dupstr_n(const char *string, unsigned int *lenout)
*lenout = (unsigned int) len;
return strcpy((char *) alloc(len + 1), string);
}
#endif
/* cast to int or panic on overflow; use via macro */
int