27 lines
587 B
C
27 lines
587 B
C
#include "picrin.h"
|
|
#include "picrin/object.h"
|
|
|
|
bool
|
|
pic_data_type_p(pic_state *pic, pic_value obj, const pic_data_type *type)
|
|
{
|
|
return pic_data_p(pic, obj) && pic_data_ptr(pic, obj)->type == type;
|
|
}
|
|
|
|
void *
|
|
pic_data(pic_state PIC_UNUSED(*pic), pic_value data)
|
|
{
|
|
return pic_data_ptr(pic, data)->data;
|
|
}
|
|
|
|
pic_value
|
|
pic_data_value(pic_state *pic, void *userdata, const pic_data_type *type)
|
|
{
|
|
struct pic_data *data;
|
|
|
|
data = (struct pic_data *)pic_obj_alloc(pic, sizeof(struct pic_data), PIC_TYPE_DATA);
|
|
data->type = type;
|
|
data->data = userdata;
|
|
|
|
return pic_obj_value(data);
|
|
}
|