diff options
Diffstat (limited to 'engines/sci/engine/seg_manager.cpp')
-rw-r--r-- | engines/sci/engine/seg_manager.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/engines/sci/engine/seg_manager.cpp b/engines/sci/engine/seg_manager.cpp index 159d3170f8..23d1942dd3 100644 --- a/engines/sci/engine/seg_manager.cpp +++ b/engines/sci/engine/seg_manager.cpp @@ -892,6 +892,11 @@ SciArray *SegManager::lookupArray(reg_t addr) { } void SegManager::freeArray(reg_t addr) { + // SSCI memory manager ignores attempts to free null handles + if (addr.isNull()) { + return; + } + if (_heap[addr.getSegment()]->getType() != SEG_TYPE_ARRAY) error("Attempt to use non-array %04x:%04x as array", PRINT_REG(addr)); |