summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2011-02-25 20:52:53 +0900
committerAkira TAGOH <akira@tagoh.org>2011-02-25 20:52:53 +0900
commitb0d1b21724aa96d56677b242793463a50aa5eb2e (patch)
tree8373e04061579d82a3c6afe0315352d0400aeea0
parent8b9d11d75afc485380dc92a6e49b8d32d39cb0d6 (diff)
hg_device_t APIs cleanup
-rw-r--r--hieroglyph/hgdevice.c31
-rw-r--r--hieroglyph/hgdevice.h26
-rw-r--r--hieroglyph/hgobject.h5
-rw-r--r--hieroglyph/hgvm.c11
4 files changed, 30 insertions, 43 deletions
diff --git a/hieroglyph/hgdevice.c b/hieroglyph/hgdevice.c
index fc539a4..ce19875 100644
--- a/hieroglyph/hgdevice.c
+++ b/hieroglyph/hgdevice.c
@@ -172,35 +172,40 @@ _hg_device_open(hg_mem_t *mem,
* Returns:
*/
hg_bool_t
-hg_device_gc_mark(hg_device_t *device,
- hg_gc_iterate_func_t func,
- hg_pointer_t user_data)
+hg_device_gc_mark(hg_device_t *device)
{
hg_return_val_if_fail (device != NULL, FALSE, HG_e_VMerror);
- hg_return_val_if_fail (func != NULL, FALSE, HG_e_VMerror);
if (device->params) {
- hg_mem_t *mem = hg_mem_spool_get(hg_quark_get_mem_id(device->params->self));
+ hg_mem_t *mem;
+ mem = hg_mem_spool_get(hg_quark_get_mem_id(device->params->self));
if (!hg_mem_gc_mark(mem, device->params->self))
return FALSE;
- if (!func(device->params->qinput_attributes, user_data))
+ mem = hg_mem_spool_get(hg_quark_get_mem_id(device->params->qinput_attributes));
+ if (!hg_mem_gc_mark(mem, device->params->qinput_attributes))
return FALSE;
- if (!func(device->params->qmedia_color, user_data))
+ mem = hg_mem_spool_get(hg_quark_get_mem_id(device->params->qmedia_color));
+ if (!hg_mem_gc_mark(mem, device->params->qmedia_color))
return FALSE;
- if (!func(device->params->qmedia_type, user_data))
+ mem = hg_mem_spool_get(hg_quark_get_mem_id(device->params->qmedia_type));
+ if (!hg_mem_gc_mark(mem, device->params->qmedia_type))
return FALSE;
- if (!func(device->params->qoutput_type, user_data))
+ mem = hg_mem_spool_get(hg_quark_get_mem_id(device->params->qoutput_type));
+ if (!hg_mem_gc_mark(mem, device->params->qoutput_type))
return FALSE;
- if (!func(device->params->qinstall, user_data))
+ mem = hg_mem_spool_get(hg_quark_get_mem_id(device->params->qinstall));
+ if (!hg_mem_gc_mark(mem, device->params->qinstall))
return FALSE;
- if (!func(device->params->qbegin_page, user_data))
+ mem = hg_mem_spool_get(hg_quark_get_mem_id(device->params->qbegin_page));
+ if (!hg_mem_gc_mark(mem, device->params->qbegin_page))
return FALSE;
- if (!func(device->params->qend_page, user_data))
+ mem = hg_mem_spool_get(hg_quark_get_mem_id(device->params->qend_page));
+ if (!hg_mem_gc_mark(mem, device->params->qend_page))
return FALSE;
if (device->gc_mark) {
- if (!device->gc_mark(device, func, user_data))
+ if (!device->gc_mark(device))
return FALSE;
}
}
diff --git a/hieroglyph/hgdevice.h b/hieroglyph/hgdevice.h
index 4d534af..4720e45 100644
--- a/hieroglyph/hgdevice.h
+++ b/hieroglyph/hgdevice.h
@@ -147,18 +147,16 @@ struct _hg_device_t {
hg_quark_t qpdevparams_name[HG_pdev_END];
hg_pdev_params_t *params;
- hg_usize_t (* get_page_params_size) (hg_device_t *device);
- hg_error_t (* gc_mark) (hg_device_t *device,
- hg_gc_iterate_func_t func,
- hg_pointer_t user_data);
- hg_quark_t (* get_page_param) (hg_device_t *device,
- hg_uint_t index_);
- void (* install) (hg_device_t *device,
- hg_vm_t *vm);
- hg_bool_t (* get_ctm) (hg_device_t *device,
- hg_matrix_t *array);
- hg_bool_t (* is_pending_draw) (hg_device_t *device);
- void (* draw) (hg_device_t *device);
+ hg_usize_t (* get_page_params_size) (hg_device_t *device);
+ hg_error_t (* gc_mark) (hg_device_t *device);
+ hg_quark_t (* get_page_param) (hg_device_t *device,
+ hg_uint_t index_);
+ void (* install) (hg_device_t *device,
+ hg_vm_t *vm);
+ hg_bool_t (* get_ctm) (hg_device_t *device,
+ hg_matrix_t *array);
+ hg_bool_t (* is_pending_draw) (hg_device_t *device);
+ void (* draw) (hg_device_t *device);
hg_device_operator_t eofill;
hg_device_operator_t fill;
@@ -169,9 +167,7 @@ struct _hg_device_t {
};
-hg_bool_t hg_device_gc_mark (hg_device_t *device,
- hg_gc_iterate_func_t func,
- hg_pointer_t user_data);
+hg_bool_t hg_device_gc_mark (hg_device_t *device);
hg_device_t *hg_device_open (hg_mem_t *mem,
const hg_char_t *name);
void hg_device_close (hg_device_t *device);
diff --git a/hieroglyph/hgobject.h b/hieroglyph/hgobject.h
index 27af189..418eb09 100644
--- a/hieroglyph/hgobject.h
+++ b/hieroglyph/hgobject.h
@@ -85,11 +85,6 @@ HG_BEGIN_DECLS
typedef struct _hg_object_vtable_t hg_object_vtable_t;
typedef struct _hg_object_t hg_object_t;
-typedef hg_bool_t (* hg_gc_iterate_func_t) (hg_quark_t qdata,
- hg_pointer_t user_data);
-typedef void (* hg_destroy_func_t) (hg_mem_t *mem,
- hg_pointer_t user_data);
-
struct _hg_object_vtable_t {
hg_usize_t (* get_capsulated_size) (void);
diff --git a/hieroglyph/hgvm.c b/hieroglyph/hgvm.c
index c1c553f..f40f24d 100644
--- a/hieroglyph/hgvm.c
+++ b/hieroglyph/hgvm.c
@@ -463,13 +463,6 @@ hg_vm_step_in_exec_array(hg_vm_t *vm,
return retval;
}
-static hg_error_t
-_hg_vm_quark_iterate_gc_mark(hg_quark_t qdata,
- hg_pointer_t user_data)
-{
- return hg_vm_quark_gc_mark((hg_vm_t *)user_data, qdata);
-}
-
static hg_quark_t
_hg_vm_quark_iterate_copy(hg_quark_t qdata,
hg_pointer_t user_data,
@@ -645,9 +638,7 @@ _hg_vm_run_gc(hg_mem_t *mem,
return FALSE;
hg_debug(HG_MSGCAT_GC, "VM: marking objects in device");
if (vm->device) {
- if (!hg_device_gc_mark(vm->device,
- _hg_vm_quark_iterate_gc_mark,
- vm))
+ if (!hg_device_gc_mark(vm->device))
return FALSE;
}