fix vclear
This commit is contained in:
parent
277bc31225
commit
cbda3378da
2 changed files with 10 additions and 10 deletions
|
|
@ -164,7 +164,7 @@ typedef struct {
|
||||||
typedef int (*vstore_fn_t)(meta_obj_t*, void*);
|
typedef int (*vstore_fn_t)(meta_obj_t*, void*);
|
||||||
typedef int (*vget_fn_t)(meta_obj_t*, int, void**);
|
typedef int (*vget_fn_t)(meta_obj_t*, int, void**);
|
||||||
typedef int (*vput_fn_t)(meta_obj_t*, int, void*);
|
typedef int (*vput_fn_t)(meta_obj_t*, int, void*);
|
||||||
typedef void (*vclear_fn_t)(meta_obj_t*);
|
typedef int (*vclear_fn_t)(meta_obj_t*, int);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
vstore_fn_t vstore;
|
vstore_fn_t vstore;
|
||||||
|
|
@ -237,5 +237,6 @@ extern int key_find(var, void*, void**);
|
||||||
extern int vstore(var, void*);
|
extern int vstore(var, void*);
|
||||||
extern int vget(var, int, void**);
|
extern int vget(var, int, void**);
|
||||||
extern int vput(var, int, void*);
|
extern int vput(var, int, void*);
|
||||||
|
extern int vclear(var, int);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
17
src/varray.c
17
src/varray.c
|
|
@ -65,25 +65,24 @@ int vput(var v, int idx, void* data)
|
||||||
return method(obj, idx, data);
|
return method(obj, idx, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void vclear(var v)
|
int vclear(var v, int idx)
|
||||||
{
|
{
|
||||||
meta_obj_t* obj = NULL;
|
meta_obj_t* obj = NULL;
|
||||||
vclear_fn_t method = NULL;
|
vclear_fn_t method = NULL;
|
||||||
|
|
||||||
|
if (idx < 0) {
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
obj = RTTI_DATA_TO_OBJ(v);
|
obj = RTTI_DATA_TO_OBJ(v);
|
||||||
if (RTTI_OBJ_INVALID(obj)) {
|
if (RTTI_OBJ_INVALID(obj)) {
|
||||||
errno = EINVAL;
|
return -EINVAL;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RTTI_GET_METHOD(method, obj, varray, vclear);
|
RTTI_GET_METHOD(method, obj, varray, vclear);
|
||||||
if (method == NULL) {
|
if (method == NULL) {
|
||||||
errno = EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
method(obj);
|
return method(obj, idx);
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue