fixed the missing prototype defintion of hcl_instantiate()
This commit is contained in:
parent
ff6f895c31
commit
a61f6f5f47
@ -1061,6 +1061,13 @@ hcl_oop_t hcl_allocwordobj (
|
|||||||
hcl_oow_t len
|
hcl_oow_t len
|
||||||
);
|
);
|
||||||
|
|
||||||
|
hcl_oop_t hcl_instantiate (
|
||||||
|
hcl_t* hcl,
|
||||||
|
hcl_oop_class_t _class,
|
||||||
|
const void* vptr,
|
||||||
|
hcl_oow_t vlen
|
||||||
|
);
|
||||||
|
|
||||||
/* ========================================================================= */
|
/* ========================================================================= */
|
||||||
/* sym.c */
|
/* sym.c */
|
||||||
/* ========================================================================= */
|
/* ========================================================================= */
|
||||||
|
30
lib/obj.c
30
lib/obj.c
@ -380,7 +380,7 @@ static HCL_INLINE int decode_spec (hcl_t* hcl, hcl_oop_class_t _class, hcl_obj_t
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
hcl_oop_t hcl_instantiate (hcl_t*hcl, hcl_oop_class_t _class, const void* vptr, hcl_oow_t vlen)
|
hcl_oop_t hcl_instantiate (hcl_t* hcl, hcl_oop_class_t _class, const void* vptr, hcl_oow_t vlen)
|
||||||
{
|
{
|
||||||
hcl_oop_t oop;
|
hcl_oop_t oop;
|
||||||
hcl_obj_type_t type;
|
hcl_obj_type_t type;
|
||||||
@ -402,22 +402,22 @@ hcl_oop_t hcl_instantiate (hcl_t*hcl, hcl_oop_class_t _class, const void* vptr,
|
|||||||
if (HCL_LIKELY(oop))
|
if (HCL_LIKELY(oop))
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
/* initialize named instance variables with default values */
|
/* initialize named instance variables with default values */
|
||||||
if (_class->initv[0] != hcl->_nil)
|
if (_class->initv[0] != hcl->_nil)
|
||||||
{
|
{
|
||||||
hcl_oow_t i = HCL_OBJ_GET_SIZE(_class->initv[0]);
|
hcl_oow_t i = HCL_OBJ_GET_SIZE(_class->initv[0]);
|
||||||
|
|
||||||
/* [NOTE] i don't deep-copy initial values.
|
/* [NOTE] i don't deep-copy initial values.
|
||||||
* if you change the contents of compound values like arrays,
|
* if you change the contents of compound values like arrays,
|
||||||
* it affects subsequent instantiation of the class.
|
* it affects subsequent instantiation of the class.
|
||||||
* it's important that the compiler should mark compound initial
|
* it's important that the compiler should mark compound initial
|
||||||
* values read-only. */
|
* values read-only. */
|
||||||
while (i > 0)
|
while (i > 0)
|
||||||
{
|
{
|
||||||
--i;
|
--i;
|
||||||
HCL_OBJ_SET_OOP_VAL (oop, i, HCL_OBJ_GET_OOP_VAL(_class->initv[0], i));
|
HCL_OBJ_SET_OOP_VAL (oop, i, HCL_OBJ_GET_OOP_VAL(_class->initv[0], i));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
HCL_ASSERT (hcl, vptr == HCL_NULL);
|
HCL_ASSERT (hcl, vptr == HCL_NULL);
|
||||||
|
@ -881,7 +881,6 @@ static hcl_pfrc_t pf_object_new (hcl_t* hcl, hcl_mod_t* mod, hcl_ooi_t nargs)
|
|||||||
obj = hcl_instantiate(hcl, class_, HCL_NULL, 0);
|
obj = hcl_instantiate(hcl, class_, HCL_NULL, 0);
|
||||||
if (HCL_UNLIKELY(!obj)) return HCL_PF_FAILURE;
|
if (HCL_UNLIKELY(!obj)) return HCL_PF_FAILURE;
|
||||||
|
|
||||||
|
|
||||||
HCL_STACK_SETRET (hcl, nargs, obj);
|
HCL_STACK_SETRET (hcl, nargs, obj);
|
||||||
return HCL_PF_SUCCESS;
|
return HCL_PF_SUCCESS;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user