diff runtime/object.c @ 31:668f533e5284

Add initial version of C backend
author Mike Pavone <pavone@retrodev.com>
date Sat, 07 Jul 2012 16:48:36 -0700
parents
children a10f1b049193
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime/object.c	Sat Jul 07 16:48:36 2012 -0700
@@ -0,0 +1,21 @@
+#include "object.h"
+#include <stdarg.h>
+#include <stdlib.h>
+
+object * make_object(obj_meta * meta, void * parent, int num_props, ...)
+{
+	va_list args;
+	object * newobj = malloc(meta->size);
+	newobj->meta = meta;
+	newobj->parent = parent;
+	
+	va_start(args, num_props);
+	object ** curprop = ((object **)(newobj + 1));
+	for (; num_props > 0; num_props--)
+	{
+		*curprop = va_arg(args, object *);
+	}
+	va_end(args);
+	return newobj;
+}
+