Update function call stuff
This commit is contained in:
+19
-2
@@ -27,7 +27,7 @@ void *lisp_alloc_object_no_gc(size_t size, LispValType type) {
|
||||
LispObject *obj = lisp_aligned_alloc(LISP_OBJECT_ALIGNMENT, size);
|
||||
memset(obj, 0, size);
|
||||
obj->type = type;
|
||||
tss_create(&obj->gc.has_local_ref, NULL);
|
||||
tss_create(&obj->gc.lowest_local_ref, NULL);
|
||||
return obj;
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ void *lisp_alloc_object(size_t size, LispValType type) {
|
||||
void lisp_release_object(LispVal *val) {
|
||||
assert(OBJECTP(val));
|
||||
LispObject *obj = val;
|
||||
tss_delete(obj->gc.has_local_ref);
|
||||
tss_delete(obj->gc.lowest_local_ref);
|
||||
lisp_free(val);
|
||||
}
|
||||
|
||||
@@ -131,6 +131,11 @@ DEFUN(intern, "intern", (LispVal * name), "(name)", "") {
|
||||
return newsym;
|
||||
}
|
||||
|
||||
DEFUN(symbol_value, "symbol-value", (LispVal * sym), "(sym)", "") {
|
||||
CHECK_TYPE(sym, TYPE_SYMBOL);
|
||||
return SYMBOL_VALUE(sym);
|
||||
}
|
||||
|
||||
DEFUN(symbol_function, "symbol-function", (LispVal * sym, LispVal *resolve),
|
||||
"(sym &optional resolve)", "") {
|
||||
CHECK_TYPE(sym, TYPE_SYMBOL);
|
||||
@@ -148,6 +153,18 @@ DEFUN(symbol_plist, "symbol-plist", (LispVal * sym), "(sym)", "") {
|
||||
return ((LispSymbol *) sym)->plist;
|
||||
}
|
||||
|
||||
DEFUN(set, "set", (LispVal * sym, LispVal *value), "(sym value)", "") {
|
||||
CHECK_TYPE(sym, TYPE_SYMBOL);
|
||||
SET_SYMBOL_VALUE(sym, value);
|
||||
return value;
|
||||
}
|
||||
|
||||
DEFUN(fset, "fset", (LispVal * sym, LispVal *value), "(sym value)", "") {
|
||||
CHECK_TYPE(sym, TYPE_SYMBOL);
|
||||
((LispSymbol *) sym)->function = value;
|
||||
return value;
|
||||
}
|
||||
|
||||
DEFUN(setplist, "setplist", (LispVal * sym, LispVal *plist), "(sym plist)",
|
||||
"") {
|
||||
CHECK_TYPE(sym, TYPE_SYMBOL);
|
||||
|
||||
Reference in New Issue
Block a user