Handmade Hero»Episode Guide
Consolidating Memory Block Headers
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:11Recap and set the stage for the day
0:11Recap and set the stage for the day
0:11Recap and set the stage for the day
1:07Run the game and assess our current situation
1:07Run the game and assess our current situation
1:07Run the game and assess our current situation
3:22Blackboard: Memory Protection
3:22Blackboard: Memory Protection
3:22Blackboard: Memory Protection
7:08Consider sharing the memory protection block with the operating system
7:08Consider sharing the memory protection block with the operating system
7:08Consider sharing the memory protection block with the operating system
10:10handmade_platform.h: Introduce platform_memory_block struct which is shared with win32_memory_block
10:10handmade_platform.h: Introduce platform_memory_block struct which is shared with win32_memory_block
10:10handmade_platform.h: Introduce platform_memory_block struct which is shared with win32_memory_block
12:08handmade_platform.h: Collapse the memory_block_chain into platform_memory_block
12:08handmade_platform.h: Collapse the memory_block_chain into platform_memory_block
12:08handmade_platform.h: Collapse the memory_block_chain into platform_memory_block
15:31handmade_memory.h: Make PushSize_() use our new platform-provided struct
15:31handmade_memory.h: Make PushSize_() use our new platform-provided struct
15:31handmade_memory.h: Make PushSize_() use our new platform-provided struct
22:29handmade_memory.h: Make Clear() and FreeLastBlock() operate on this struct
22:29handmade_memory.h: Make Clear() and FreeLastBlock() operate on this struct
22:29handmade_memory.h: Make Clear() and FreeLastBlock() operate on this struct
24:48win32_handmade.cpp: Rewrite PLATFORM_ALLOCATE_MEMORY() and PLATFORM_DEALLOCATE_MEMORY() to implement our new shared scheme
24:48win32_handmade.cpp: Rewrite PLATFORM_ALLOCATE_MEMORY() and PLATFORM_DEALLOCATE_MEMORY() to implement our new shared scheme
24:48win32_handmade.cpp: Rewrite PLATFORM_ALLOCATE_MEMORY() and PLATFORM_DEALLOCATE_MEMORY() to implement our new shared scheme
30:30Run the game and fix miscellaneous bugs
30:30Run the game and fix miscellaneous bugs
30:30Run the game and fix miscellaneous bugs
33:08Run the game to see that we're running okay
33:08Run the game to see that we're running okay
33:08Run the game to see that we're running okay
33:39win32_handmade.cpp: Enable PLATFORM_ALLOCATE_MEMORY() to perform overflow checking
33:39win32_handmade.cpp: Enable PLATFORM_ALLOCATE_MEMORY() to perform overflow checking
33:39win32_handmade.cpp: Enable PLATFORM_ALLOCATE_MEMORY() to perform overflow checking
39:57Blackboard: Checking for any set bits
39:57Blackboard: Checking for any set bits
39:57Blackboard: Checking for any set bits
41:35win32_handmade.cpp: Continue enabling overflow checking
41:35win32_handmade.cpp: Continue enabling overflow checking
41:35win32_handmade.cpp: Continue enabling overflow checking
43:39Run the game to see it successfully catch our overflow bug
43:39Run the game to see it successfully catch our overflow bug
43:39Run the game to see it successfully catch our overflow bug
44:18handmade_world.cpp: Remove that bug, run it again, crash in PushAndNullTerminate() and investigate why
44:18handmade_world.cpp: Remove that bug, run it again, crash in PushAndNullTerminate() and investigate why
44:18handmade_world.cpp: Remove that bug, run it again, crash in PushAndNullTerminate() and investigate why
46:23Calculate what we would expect
46:23Calculate what we would expect
46:23Calculate what we would expect
48:17Step through PushSize_() to see what it's computing
48:17Step through PushSize_() to see what it's computing
48:17Step through PushSize_() to see what it's computing
52:17Consider our choices for getting the correct alignment
52:17Consider our choices for getting the correct alignment
52:17Consider our choices for getting the correct alignment
53:57handmade_memory.h: Enable PushSize_() to compute the size using the alignment
53:57handmade_memory.h: Enable PushSize_() to compute the size using the alignment
53:57handmade_memory.h: Enable PushSize_() to compute the size using the alignment
54:37Run the game to find that we are maintaining alignment
54:37Run the game to find that we are maintaining alignment
54:37Run the game to find that we are maintaining alignment
55:45handmade_memory.h: Prevent PushSize_() from enabling the bounds checking, run the game and try looped code editing
55:45handmade_memory.h: Prevent PushSize_() from enabling the bounds checking, run the game and try looped code editing
55:45handmade_memory.h: Prevent PushSize_() from enabling the bounds checking, run the game and try looped code editing
56:19Investigate what's happening with the SourceBlock.Sizeα
56:19Investigate what's happening with the SourceBlock.Sizeα
56:19Investigate what's happening with the SourceBlock.Sizeα
58:12win32_handmade.cpp: Make PLATFORM_ALLOCATE_MEMORY() set the PageSize directly to aid our investigations
58:12win32_handmade.cpp: Make PLATFORM_ALLOCATE_MEMORY() set the PageSize directly to aid our investigations
58:12win32_handmade.cpp: Make PLATFORM_ALLOCATE_MEMORY() set the PageSize directly to aid our investigations
1:01:57Q&A
🗩
1:01:57Q&A
🗩
1:01:57Q&A
🗩
1:02:37insobot Bashing Tim Berners-Lee, inventor of the outer loop from 0 to freee everything?
🗪
1:02:37insobot Bashing Tim Berners-Lee, inventor of the outer loop from 0 to freee everything?
🗪
1:02:37insobot Bashing Tim Berners-Lee, inventor of the outer loop from 0 to freee everything?
🗪
1:02:57"It's kind of like insobot is the beat poet of our generation"β
1:02:57"It's kind of like insobot is the beat poet of our generation"β
1:02:57"It's kind of like insobot is the beat poet of our generation"β
1:03:51pragmascrypt Maybe set the default alignment to 1 when in memory checking mode?
🗪
1:03:51pragmascrypt Maybe set the default alignment to 1 when in memory checking mode?
🗪
1:03:51pragmascrypt Maybe set the default alignment to 1 when in memory checking mode?
🗪
1:04:18todo.txt: Update the TODO list
1:04:18todo.txt: Update the TODO list
1:04:18todo.txt: Update the TODO list
1:05:03danyguag I know this is a little off-topic to what you are currently doing on stream, but what role does a software driver play if any at all?
🗪
1:05:03danyguag I know this is a little off-topic to what you are currently doing on stream, but what role does a software driver play if any at all?
🗪
1:05:03danyguag I know this is a little off-topic to what you are currently doing on stream, but what role does a software driver play if any at all?
🗪
1:06:56danyguag No, you can make a C++ project that enables you to use resources that you can't use in user mode in the kernel
🗪
1:06:56danyguag No, you can make a C++ project that enables you to use resources that you can't use in user mode in the kernel
🗪
1:06:56danyguag No, you can make a C++ project that enables you to use resources that you can't use in user mode in the kernel
🗪
1:10:52Done
🗩
1:10:52Done
🗩
1:10:52Done
🗩