Exemplo n.º 1
0
void ekChunkDestroy(struct ekContext * E, ekChunk * chunk)
{
    // chunk->block is either NULL or pointing inside chunk->blocks
    ekArrayDestroy(E, &chunk->blocks, (ekDestroyCB)ekBlockDestroy);

    ekArrayDestroy(E, &chunk->kStrings, (ekDestroyCB)ekDestroyCBFree);
    ek32ArrayDestroy(E, &chunk->kInts);
    ek32ArrayDestroy(E, &chunk->kFloats);

    ekStringClear(E, &chunk->sourcePath);
    ekStringClear(E, &chunk->searchPath);

    ekFree(chunk);
}
Exemplo n.º 2
0
static void ekSyntaxElementClear(struct ekContext * E, ekSyntaxElement * e)
{
    if (e->p) {
        ekSyntaxDestroy(E, e->p);
    }
    if (e->s) {
        ekFree(e->s);
    }
    if (e->a) {
        ekArrayDestroy(E, &e->a, (ekDestroyCB)ekSyntaxDestroy);
    }
}
Exemplo n.º 3
0
void ekCompilerDestroy(ekCompiler *compiler)
{
    struct ekContext *E = compiler->E;
    if(compiler->chunk)
    {
        ekChunkDestroy(E, compiler->chunk);
    }
    if(compiler->root)
    {
        ekSyntaxDestroy(E, compiler->root);
    }
    ekArrayDestroy(E, &compiler->errors, (ekDestroyCB)ekErrorDestroy);
    ekFree(compiler);
}