Пример #1
0
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;
}
Пример #2
0
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;
}