Ejemplo n.º 1
0
static int test_start(void)
{
    testObj = NULL;
    testObj = oc_new(oc_lifo, 4, 1);

    ASSERT(testObj != NULL);
    ASSERT(testObj->super.buffer_size == 4);
    ASSERT(testObj->super.item_size == 1);
    ASSERT(testObj->super.count == 0);

    return 0;
}
Ejemplo n.º 2
0
static int test_ctor(void)
{
    int var = 1234;

    testObj=NULL;
    testObj=oc_new(oc_extended_test_object, var);

    ASSERT(testObj != NULL);
    ASSERT(malloc_usable_size(testObj) >= sizeof(struct oc_extended_test_object));
    ASSERT(testObj->super.class == oc_extended_test_object);
    ASSERT(testObj->super.vtable == &_vtable);
    ASSERT(testObj->var == var);

    return 0;
}
Ejemplo n.º 3
0
char *oc_register(SEXP what, char *dst, int len, const char *name) {
    SEXP x;
    if (len <= MAX_OC_TOKEN_LEN) return NULL;
    if (!oc_env) {
	SEXP env = eval(PROTECT(lang3(install("new.env"), ScalarLogical(TRUE), R_EmptyEnv)), R_GlobalEnv);
	UNPROTECT(1);
	if (TYPEOF(env) != ENVSXP) return NULL;
	oc_env = env;
	R_PreserveObject(oc_env);
    }
    x = PROTECT(CONS(what, R_NilValue));
    if (name) SET_TAG(x, install(name));
    oc_new(dst);
    Rf_defineVar(install(dst), x, oc_env);
    UNPROTECT(1);
    return dst;
}