// ensure 'simple' ghost users don't see garbage for these fields
type->get_member = 0;
type->set_member = 0;
-
+
ghost = naNew(c, T_GHOST);
PTR(ghost).ghost->gtype = type;
PTR(ghost).ghost->ptr = ptr;
+ PTR(ghost).ghost->data = naNil();
return ghost;
}
naRef ghost = naNew(c, T_GHOST);
PTR(ghost).ghost->gtype = t;
PTR(ghost).ghost->ptr = ptr;
+ PTR(ghost).ghost->data = naNil();
return ghost;
}
return PTR(ghost).ghost->ptr;
}
+void naGhost_setData(naRef ghost, naRef data)
+{
+ if(IS_GHOST(ghost))
+ PTR(ghost).ghost->data = data;
+}
+
+naRef naGhost_data(naRef ghost)
+{
+ if(!IS_GHOST(ghost)) return naNil();
+ return PTR(ghost).ghost->data;
+}
+
naRef naNil()
{
- naRef r;
+ naRef r;
SETPTR(r, 0);
return r;
}