[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Consolidating Debug Links and Groups" vod_platform=youtube id=r5Lld9FderU annotator=Miblo] [1:50][Recap and set the stage for the day] [6:59][handmade_debug.cpp: Delete a load of superfluous code] [8:50][4coder: Rare crash] [10:24][handmade_debug.h: Rename DEBUGDrawMainMenu to DrawTrees and split it out into a recursive function called DrawTreeLink] [15:23]["Sweet child of mine"][quote 473] [21:37][handmade_debug.cpp: Make DrawTrees call DrawTreeLink] [22:36][View our improved profiler and consider how to proceed with it] [29:23][Debugger: Jump into DrawTrees and inspect the Tree after cloning] [35:14][handmade_debug.h: Turn debug_variable_link into a linked struct with a fake Sentinel and port everything to it] [54:54][handmade_shared.h: Make StringsAreEqual handle NULL] [56:49][View our profiler and see that cloning works again] [56:59][handmade_debug.cpp: Make CloneVariableLink just do the direct clone and return it] [59:05][Test cloning the profiler] [59:59][Q&A][:speech] [1:00:43][@garryjohanson][I feel I kinda lost the forecast for the trees this episode. Would you mind recapping?] [1:01:06][Blackboard: Linked structs] [1:12:52][Blackboard: Walking the tree with a recursive function] [1:15:38][@dudeinbasement1][Thoughts on linked lists, and cache friendliness? I found that a simple array, and just copying when it changes length, was way faster] [1:17:08][Blackboard: Cache friendliness] [1:21:12][@pseudonym73][Concurrency also matters. Linked lists can be better if you need multiple threads working on the list at the same time] [1:21:48][@cubercaleb][How do you feel about object pools as a sort of middle ground between linked lists and arrays?] [1:24:19][Wrap it up][:speech] [/video]