Remove global memory lock mechanism - Wasn't being used but showed up on profile report :( Move enum_pointer_fields and is_offset_pointer impls into cpp file Create enum_pointer_fields_with_offset function since the VM never needs the offset values and the generated code was about 5% bigger. Now the VM can use the callback without the offset. Removed pointless init_memory() usage since alloc_memory() now is required to return zeroed out memory. Fixed bugs in GC Added support - Ranged absolute disassembly in debugger - New duration log component
Showing the changes to src/vm/list.cpp (1 of 12 files). Show all
Unified · Split
| @@ -28,15 +28,9 @@ vm_list_t::vm_list_t(std::shared_ptr<const type_descriptor_t> td, vm_list_t *tai · 27 unmodified lines | ||
| 28 | 28 | set_tail(tail); |
| 29 | 29 | |
| 30 | 30 | // If the default list element storage is not enough, allocate more memory. |
| 31 | + // [SPEC] Element memory is already initialized to zero based on the alloc_memory contract | |
| 31 | 32 | if (_is_alloc) |
| 32 | − { | |
| 33 | 33 | _mem.alloc = static_cast<pointer_t>(alloc_memory(_element_type->size_in_bytes)); |
| 34 | − init_memory(*_element_type, _mem.alloc); | |
| 35 | − } | |
| 36 | − else | |
| 37 | − { | |
| 38 | − init_memory(*_element_type, &_mem.local); | |
| 39 | − } | |
| 40 | 34 | |
| 41 | 35 | if (debug::is_component_tracing_enabled<debug::component_trace_t::memory>()) |
| 42 | 36 | debug::log_msg(debug::component_trace_t::memory, debug::log_level_t::debug, "init: vm list"); |