CAMLexport value Val_pointer (void *ptr) { value ret = alloc_small (2, Abstract_tag); if (!ptr) ml_raise_null_pointer (); Field(ret,1) = (value)ptr; return ret; }
CAMLprim value ml_gtk_selection_data_get_data (value val) { value ret; GtkSelectionData *data = GtkSelectionData_val(val); if (data->length < 0) ml_raise_null_pointer(); ret = alloc_string (data->length); if (data->length) memcpy ((void*)ret, data->data, data->length); return ret; }
CAMLexport value copy_memblock_indirected (void *src, asize_t size) { mlsize_t wosize = Wosize_asize(size); value ret; if (!src) ml_raise_null_pointer (); ret = alloc_shr (wosize+2, Abstract_tag); Field(ret,1) = (value)2; memcpy ((value *) ret + 2, src, size); return ret; }
CAMLprim value copy_string_check (const char*str) { if (!str) ml_raise_null_pointer (); return copy_string ((char*) str); }