[video output=day268 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]
