From 338e3930d94d674f66ba22922bdad430a3955ed5 Mon Sep 17 00:00:00 2001 From: skyjake Date: Sun, 17 Feb 2013 22:50:26 +0200 Subject: [PATCH] libdeng2|ScriptSystem|Fixed: Adding native modules Cannot refer to the private instance before it has been assigned to d. --- doomsday/libdeng2/src/scriptsys/scriptsystem.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/doomsday/libdeng2/src/scriptsys/scriptsystem.cpp b/doomsday/libdeng2/src/scriptsys/scriptsystem.cpp index fd86096fc1..49cb82b0a1 100644 --- a/doomsday/libdeng2/src/scriptsys/scriptsystem.cpp +++ b/doomsday/libdeng2/src/scriptsys/scriptsystem.cpp @@ -56,7 +56,7 @@ DENG2_PIMPL(ScriptSystem), DENG2_OBSERVES(Record, Deletion) mod.addNumber("CPU_BITS", Version::cpuBits()).setReadOnly(); mod.addBoolean("DEBUG", Version::isDebugBuild()).setReadOnly(); - self.addNativeModule("Version", mod); + addNativeModule("Version", mod); } ~Instance() @@ -67,6 +67,12 @@ DENG2_PIMPL(ScriptSystem), DENG2_OBSERVES(Record, Deletion) } } + void addNativeModule(String const &name, Record &module) + { + nativeModules.insert(name, &module); + module.audienceForDeletion += this; + } + void recordBeingDeleted(Record &record) { QMutableMapIterator iter(nativeModules); @@ -91,8 +97,7 @@ ScriptSystem::~ScriptSystem() void ScriptSystem::addNativeModule(String const &name, Record &module) { - d->nativeModules.insert(name, &module); - module.audienceForDeletion += d; + d->addNativeModule(name, module); } static int sortFilesByModifiedAt(File const *a, File const *b)