mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-04 01:46:42 +00:00
Reverted the code which handles objects without a base object when loading, for now. This possibly indicates an issue related to the garbage collector
svn-id: r50142
This commit is contained in:
parent
5855cd7127
commit
c28fa2cf19
@ -778,11 +778,11 @@ void SegManager::reconstructScripts(EngineState *s) {
|
||||
Object *obj = scr->scriptObjInit(addr, false);
|
||||
|
||||
if (getSciVersion() < SCI_VERSION_1_1) {
|
||||
if (!obj->isFreed()) {
|
||||
if (!obj->initBaseObject(this, addr, false)) {
|
||||
warning("Failed to locate base object for object at %04X:%04X; skipping", PRINT_REG(addr));
|
||||
//scr->scriptObjRemove(addr);
|
||||
}
|
||||
if (!obj->initBaseObject(this, addr, false)) {
|
||||
// TODO/FIXME: This should not be happening at all. It might indicate a possible issue
|
||||
// with the garbage collector. It happens for example in LSL5 (German, perhaps English too).
|
||||
warning("Failed to locate base object for object at %04X:%04X; skipping", PRINT_REG(addr));
|
||||
scr->scriptObjRemove(addr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -268,14 +268,12 @@ Object *Script::scriptObjInit(reg_t obj_pos, bool fullObjectInit) {
|
||||
return obj;
|
||||
}
|
||||
|
||||
#if 0
|
||||
void Script::scriptObjRemove(reg_t obj_pos) {
|
||||
if (getSciVersion() < SCI_VERSION_1_1)
|
||||
obj_pos.offset += 8;
|
||||
|
||||
_objects.erase(obj_pos.toUint16());
|
||||
}
|
||||
#endif
|
||||
|
||||
// This helper function is used by Script::relocateLocal and Object::relocate
|
||||
static bool relocateBlock(Common::Array<reg_t> &block, int block_location, SegmentId segment, int location, size_t scriptSize) {
|
||||
|
@ -406,13 +406,11 @@ public:
|
||||
*/
|
||||
Object *scriptObjInit(reg_t obj_pos, bool fullObjectInit = true);
|
||||
|
||||
#if 0
|
||||
/**
|
||||
* Removes a script object
|
||||
* @param obj_pos Location (segment, offset) of the object.
|
||||
*/
|
||||
void scriptObjRemove(reg_t obj_pos);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Processes a relocation block witin a script
|
||||
|
Loading…
x
Reference in New Issue
Block a user