cfish_Hash* LUCY_Doc_Dump_IMP(lucy_Doc *self) { dTHX; lucy_DocIVARS *const ivars = lucy_Doc_IVARS(self); cfish_Hash *dump = cfish_Hash_new(0); CFISH_Hash_Store_Utf8(dump, "_class", 6, (cfish_Obj*)CFISH_Str_Clone(lucy_Doc_get_class_name(self))); CFISH_Hash_Store_Utf8(dump, "doc_id", 7, (cfish_Obj*)cfish_Str_newf("%i32", ivars->doc_id)); SV *fields_sv = newRV_inc((SV*)ivars->fields); CFISH_Hash_Store_Utf8(dump, "fields", 6, XSBind_perl_to_cfish(aTHX_ fields_sv, CFISH_HASH)); SvREFCNT_dec(fields_sv); return dump; }
kino_Obj* kino_Host_callback_obj(void *vobj, char *method, uint32_t num_args, ...) { va_list args; SV *temp_retval; kino_Obj *retval = NULL; va_start(args, num_args); temp_retval = S_do_callback_sv(vobj, method, num_args, args); va_end(args); retval = XSBind_perl_to_cfish(temp_retval); FREETMPS; LEAVE; return retval; }