And your question becomes equivalent of "how can I use malloc() in description and return it as a pointer that is never free()d?". So the only options are return something that's already in self, or leak memory.
And your question becomes equivalent of "how can I use malloc() in description and return it as a pointer that is never free()d?". So the only options are return something that's already in self, or leak memory.