Mercurial > repos > tabletprog
diff runtime/object.c @ 34:a10f1b049193
Working closures, but need to rethink method call strategy
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 09 Jul 2012 08:57:50 -0700 |
parents | 668f533e5284 |
children | bf5e88f6419d |
line wrap: on
line diff
--- a/runtime/object.c Sun Jul 08 12:32:24 2012 -0700 +++ b/runtime/object.c Mon Jul 09 08:57:50 2012 -0700 @@ -1,6 +1,7 @@ #include "object.h" #include <stdarg.h> #include <stdlib.h> +#include <stddef.h> object * make_object(obj_meta * meta, void * parent, int num_props, ...) { @@ -14,8 +15,18 @@ for (; num_props > 0; num_props--) { *curprop = va_arg(args, object *); + curprop++; } va_end(args); return newobj; } +object * make_closure(void * env, closure_func func) +{ + closure * ret = malloc(sizeof(closure)); + ret->header.meta = &lambda_meta; + ret->header.parent = NULL; + ret->env = env; + ret->func = func; + return (object *) ret; +}