more code to implement class
This commit is contained in:
@ -353,20 +353,21 @@ hcl_oop_t hcl_makefpdec (hcl_t* hcl, hcl_oop_t value, hcl_ooi_t scale)
|
||||
return (hcl_oop_t)f;
|
||||
}
|
||||
|
||||
hcl_oop_t hcl_makeclass (hcl_t* hcl, hcl_oop_t superclass, hcl_ooi_t nivars, hcl_ooi_t ncvars)
|
||||
hcl_oop_t hcl_makeclass (hcl_t* hcl, hcl_oop_t superclass, hcl_ooi_t nivars, hcl_ooi_t ncvars, hcl_oop_t ivars_str, hcl_oop_t cvars_str)
|
||||
{
|
||||
hcl_oop_class_t c;
|
||||
|
||||
hcl_pushvolat (hcl, &superclass);
|
||||
hcl_pushvolat (hcl, &ivars_str);
|
||||
hcl_pushvolat (hcl, &cvars_str);
|
||||
c = (hcl_oop_class_t)hcl_allocoopobj(hcl, HCL_BRAND_CLASS, HCL_CLASS_NAMED_INSTVARS);
|
||||
hcl_popvolat (hcl);
|
||||
hcl_popvolats (hcl, 3);
|
||||
if (HCL_UNLIKELY(!c)) return HCL_NULL;
|
||||
|
||||
c->superclass = superclass;
|
||||
c->nivars = HCL_SMOOI_TO_OOP(nivars);
|
||||
c->ncvars = HCL_SMOOI_TO_OOP(ncvars);
|
||||
|
||||
|
||||
return (hcl_oop_t)c;
|
||||
}
|
||||
|
||||
@ -458,7 +459,9 @@ hcl_oop_t hcl_instantiate (hcl_t*hcl, hcl_oop_class_t _class, const void* vptr,
|
||||
|
||||
if (HCL_LIKELY(oop))
|
||||
{
|
||||
#if 0
|
||||
hcl_ooi_t spec;
|
||||
#endif
|
||||
HCL_OBJ_SET_CLASS (oop, (hcl_oop_t)_class);
|
||||
#if 0
|
||||
spec = HCL_OOP_TO_SMOOI(_class->spec);
|
||||
|
Reference in New Issue
Block a user