Mercurial > repos > rhope
view runtime/blueprint.c @ 65:1db811fa4744
Handle native Rhope functions and plain C functions separately as part of move to new C strategy
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 01 Jun 2010 01:13:54 -0400 |
parents | 3e20ed8959c4 |
children | d4b44ae2e34a |
line wrap: on
line source
#include "blueprint.h" #include "builtin.h" #include "context.h" #include <stddef.h> typedef struct { blueprint * bp; } l_Build; Func(Build, NumParams 1, CallSpace 1, l_Build) Param(0, TYPE_BLUEPRINT) locals->bp = ((t_Blueprint *)(cdata->params[0]))->bp; release_ref(cdata->params[0]); Ret(0, new_object_bp(locals->bp)) EndFunc Func(BlueprintSP_Of, NumParams 1, CallSpace 1, l_Build) locals->bp = get_blueprint(cdata->params[0]); release_ref(cdata->params[0]); Ret(0, new_object(TYPE_BLUEPRINT)) ((t_Blueprint *)cdata->params[0])->bp = locals->bp; EndFunc object * make_Blueprint(int32_t type_id) { t_Blueprint * obj; object * ret = new_object(TYPE_BLUEPRINT); obj = (t_Blueprint *)ret; obj->bp = type_id ? get_blueprint_byid(type_id) : NULL; return ret; } int32_t _internal_blueprint_eq(object * left, object * right) { t_Blueprint * l = (t_Blueprint *)left; t_Blueprint * r = (t_Blueprint *)right; return l->bp == r->bp; }