aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/gc.cpp
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2009-06-06 11:38:20 +0000
committerWillem Jan Palenstijn2009-06-06 11:38:20 +0000
commit60e02ad6a81bc30d99c3f803893a88515b237c4e (patch)
treee09d4a01e5610c13356e4cdb91178caa812c6404 /engines/sci/engine/gc.cpp
parenta5a0a9536115cc9e0169e9cb75274a9f61c02e73 (diff)
downloadscummvm-rg350-60e02ad6a81bc30d99c3f803893a88515b237c4e.tar.gz
scummvm-rg350-60e02ad6a81bc30d99c3f803893a88515b237c4e.tar.bz2
scummvm-rg350-60e02ad6a81bc30d99c3f803893a88515b237c4e.zip
Store long-term pointers to object variables in a new ObjVarRef struct.
Storing them as reg_t* could cause the pointers to become invalid when they pointed into CloneTable since CloneTable can be re-allocated. svn-id: r41220
Diffstat (limited to 'engines/sci/engine/gc.cpp')
-rw-r--r--engines/sci/engine/gc.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/engines/sci/engine/gc.cpp b/engines/sci/engine/gc.cpp
index 24a7fbd1a9..1bfb66987e 100644
--- a/engines/sci/engine/gc.cpp
+++ b/engines/sci/engine/gc.cpp
@@ -106,7 +106,7 @@ reg_t_hash_map *find_all_used_references(EngineState *s) {
wm.push(es.objp);
wm.push(es.sendp);
if (es.type == EXEC_STACK_TYPE_VARSELECTOR)
- wm.push(*(es.addr.varp));
+ wm.push(*(es.getVarPointer(s)));
}
}
#ifdef DEBUG_GC_VERBOSE