diff runtime/object.c @ 35:bf5e88f6419d

Use a function/method call strategy that actually works
author Mike Pavone <pavone@retrodev.com>
date Mon, 09 Jul 2012 21:32:28 -0700
parents a10f1b049193
children 2a9c6eed0c70
line wrap: on
line diff
--- a/runtime/object.c	Mon Jul 09 08:57:50 2012 -0700
+++ b/runtime/object.c	Mon Jul 09 21:32:28 2012 -0700
@@ -30,3 +30,12 @@
 	ret->func = func;
 	return (object *) ret;
 }
+
+object * mcall(uint32_t method_id, uint32_t num_args, object * self, ...)
+{
+	va_list args;
+	va_start(args, self);
+	object * ret = self->meta->meth_lookup[method_id & 0xF](method_id, num_args, self, args);
+	va_end(args);
+	return ret;
+}