示例#1
0
void world_initialize(World* world)
{
    initialize_null(&world->modulesByName);
    initialize_null(&world->modulesByFilename);
    initialize_null(&world->everyModule);
    initialize_null(&world->fileSources);
    initialize_null(&world->moduleSearchPaths);

    set_hashtable(&world->modulesByName);
    set_hashtable(&world->modulesByFilename);
    set_list(&world->everyModule);
    set_list(&world->moduleSearchPaths);
    set_list(&world->fileSources);

    world->moduleSearchPaths.append_str("$builtins");

    world->fileWatchWorld = alloc_file_watch_world();
    world->builtinPatch = circa_create_native_patch(world, "builtins");

    #if CIRCA_ENABLE_LIBUV
        world->libuvWorld = alloc_libuv_world();
    #endif

    perlin_init();
}
示例#2
0
void move(caValue* source, caValue* dest)
{
    set_null(dest);
    dest->value_type = source->value_type;
    dest->value_data = source->value_data;
    initialize_null(source);
}
示例#3
0
文件: handle.cpp 项目: arn-e/circa
void handle_initialize(Type* type, caValue* value)
{
    HandleData* c = (HandleData*) malloc(sizeof(HandleData));
    c->refcount = 1;
    initialize_null(&c->value);
    value->value_data.ptr = c;
}
示例#4
0
static int add_native_func(World* world, Value* name, EvaluateFunc func)
{
    int index = world->funcTableCount;
    world->funcTableCount++;
    world->funcTable = (NativeFunc*) realloc(world->funcTable, sizeof(NativeFunc) * world->funcTableCount);
    NativeFunc* newFunc = &world->funcTable[world->funcTableCount - 1];
    initialize_null(&newFunc->name);
    copy(name, &newFunc->name);
    newFunc->func = func;
    return index;
}
示例#5
0
ListData* allocate_empty_list(int capacity)
{
    ListData* result = (ListData*) malloc(sizeof(ListData) + capacity * sizeof(caValue));
    debug_register_valid_object(result, LIST_OBJECT);

    result->refCount = 1;
    result->count = 0;
    result->capacity = capacity;
    result->immutable = false;
    memset(result->items, 0, capacity * sizeof(caValue));
    for (int i=0; i < capacity; i++)
        initialize_null(&result->items[i]);

    return result;
}
示例#6
0
文件: kernel.cpp 项目: whunmr/circa
void MutableInitialize(Type* type, caValue* value)
{
    object_initialize(type, value);
    caValue* val = (caValue*) object_get_body(value);
    initialize_null(val);
}
示例#7
0
Value::Value(Value const& original)
{
    initialize_null(this);
    copy(&const_cast<Value&>(original), this);
}
示例#8
0
Value::Value()
{
    initialize_null(this);
}