Esempio n. 1
0
pic_value
pic_ref(pic_state *pic, const char *name)
{
  size_t ai = pic_enter(pic);
  pic_value r = pic_global_ref(pic, pic_intern_cstr(pic, name));
  pic_leave(pic, ai);
  return pic_protect(pic, r);
}
Esempio n. 2
0
struct object *
pic_obj_alloc(pic_state *pic, int type)
{
  struct object *obj;

  obj = pic_obj_alloc_unsafe(pic, type);

  pic_protect(pic, obj_value(pic, obj));
  return obj;
}
Esempio n. 3
0
pic_value
pic_funcall(pic_state *pic, const char *name, int n, ...)
{
  size_t ai = pic_enter(pic);
  pic_value proc, r;
  va_list ap;

  proc = pic_ref(pic, name);

  TYPE_CHECK(pic, proc, proc);

  va_start(ap, n);
  r = pic_vcall(pic, proc, n, ap);
  va_end(ap);

  pic_leave(pic, ai);
  return pic_protect(pic, r);
}