mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 01:20:42 +00:00
c8a518f05c
* rdcstr no longer inherits from rdcarray, it implements all functionality itself. * There are now three representations: - Heap-allocated, same as how rdcarray behaves. - Local-allocated, for small strings we store them in a union array. - Compile-time literal, only created from user-defined literals. * The main observation is that a lot of RenderDoc's strings are compile-time literals either from struct names, member names, or stringified enum values. Storing these directly and allowing them to be moved and copied quickly saves on allocations and time. When the string is modified, it's copied to one of the other formats.