Assembly *Assembly::create(LSLuaState *vm, const utString& name) { Assembly *a = new Assembly(); a->vm = vm; a->name = name; utHashTable<utHashedString, Assembly *> *lookup = NULL; UTsize idx = assemblies.find(vm); if (idx != UT_NPOS) { lookup = assemblies.at(idx); } else { lookup = new utHashTable<utHashedString, Assembly *>(); assemblies.insert(vm, lookup); } utHashedString key = a->name; lookup->insert(key, a); vm->assemblies.insert(utHashedString(a->getName()), a); return a; }
Assembly *LSLuaState::getAssembly(const utString& name) { for (UTsize i = 0; i < assemblies.size(); i++) { Assembly *assembly = assemblies.at(i); if (assembly->getName() == name) { return assembly; } if (assembly->getName() + ".loom" == name) { return assembly; } } return NULL; }