Jeff King <[email protected]> writes:
> So actually, that's pretty easy to do without writing much code at all.
> Something like:
>
> #define xgetenv(name) strintern(getenv(name))
>
> It means we're effectively storing the environment twice in the worst
> case, but that's probably not a big deal. Unless we have a loop which
> does repeated setenv()/getenv() calls, the strintern hashmap can't grow
> without bound.
Makes sense.
hashmap.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hashmap.h b/hashmap.h
index d375d9cce7..cff77f9890 100644
--- a/hashmap.h
+++ b/hashmap.h
@@ -432,6 +432,8 @@ static inline void hashmap_enable_item_counting(struct
hashmap *map)
extern const void *memintern(const void *data, size_t len);
static inline const char *strintern(const char *string)
{
+ if (!string)
+ return string;
return memintern(string, strlen(string));
}