diff options
author | Akira TAGOH <akira@tagoh.org> | 2007-09-18 12:30:42 +0000 |
---|---|---|
committer | Akira TAGOH <akira@tagoh.org> | 2007-09-18 12:30:42 +0000 |
commit | 61564e7980f1f8bdfbbf9c749e1ac4775f0ebbbd (patch) | |
tree | af3b8c074ddde23758044d8d2a370c893533fcba | |
parent | 58c9ccfa8b22735eeed3a73c10b1ea8876adde06 (diff) |
trivial fixes
-rw-r--r-- | hieroglyph/hgoperator.c | 10 | ||||
-rw-r--r-- | hieroglyph/hgoperator.h | 4 | ||||
-rw-r--r-- | hieroglyph/hgtypes.h | 12 | ||||
-rw-r--r-- | hieroglyph/vm.c | 38 | ||||
-rw-r--r-- | hieroglyph/vm.h | 68 |
5 files changed, 74 insertions, 58 deletions
diff --git a/hieroglyph/hgoperator.c b/hieroglyph/hgoperator.c index d21db41..f4b60c9 100644 --- a/hieroglyph/hgoperator.c +++ b/hieroglyph/hgoperator.c @@ -455,11 +455,11 @@ hg_object_operator_new_with_custom(hg_vm_t *vm, } gboolean -hg_object_operator_initialize(hg_vm_t *vm, - hg_emulation_type_t level) +hg_object_operator_initialize(hg_vm_t *vm, + hg_emulationtype_t level) { gboolean retval = TRUE; - hg_emulation_type_t current; + hg_emulationtype_t current; hg_return_val_if_fail (vm != NULL, FALSE); hg_return_val_if_fail (level < HG_EMU_END, FALSE); @@ -836,8 +836,8 @@ hg_object_operator_initialize(hg_vm_t *vm, } gboolean -hg_object_operator_finalize(hg_vm_t *vm, - hg_emulation_type_t level) +hg_object_operator_finalize(hg_vm_t *vm, + hg_emulationtype_t level) { gboolean retval = TRUE; diff --git a/hieroglyph/hgoperator.h b/hieroglyph/hgoperator.h index c74bc53..7b9b891 100644 --- a/hieroglyph/hgoperator.h +++ b/hieroglyph/hgoperator.h @@ -36,9 +36,9 @@ hg_object_t *hg_object_operator_new_with_custom(hg_vm_t *vm, gchar *name, hg_operator_func_t func) G_GNUC_WARN_UNUSED_RESULT; gboolean hg_object_operator_initialize (hg_vm_t *vm, - hg_emulation_type_t level); + hg_emulationtype_t level); gboolean hg_object_operator_finalize (hg_vm_t *vm, - hg_emulation_type_t level); + hg_emulationtype_t level); gboolean hg_object_operator_invoke (hg_vm_t *vm, hg_object_t *object); gboolean hg_object_operator_compare (hg_object_t *object1, diff --git a/hieroglyph/hgtypes.h b/hieroglyph/hgtypes.h index 452768c..6705f82 100644 --- a/hieroglyph/hgtypes.h +++ b/hieroglyph/hgtypes.h @@ -56,13 +56,13 @@ typedef struct hg_operatordata_s hg_operatordata_t; typedef union hg_attribute_u hg_attribute_t; typedef struct _hg_object_s _hg_object_t; typedef struct hg_object_s hg_object_t; -typedef enum hg_object_type_e hg_object_type_t; -typedef enum hg_stack_type_e hg_stack_type_t; +typedef enum hg_objecttype_e hg_objecttype_t; +typedef enum hg_stacktype_e hg_stacktype_t; typedef struct hg_stackdata_s hg_stackdata_t; typedef struct hg_stack_s hg_stack_t; typedef enum hg_error_e hg_error_t; typedef enum hg_system_encoding_e hg_system_encoding_t; -typedef enum hg_emulation_type_e hg_emulation_type_t; +typedef enum hg_emulationtype_e hg_emulationtype_t; typedef struct hg_vm_s hg_vm_t; typedef gboolean (* hg_operator_func_t) (hg_vm_t *vm, @@ -225,7 +225,7 @@ struct hg_filedata_s { gchar *filename[]; }; -enum hg_object_type_e { +enum hg_objecttype_e { HG_OBJECT_TYPE_NULL = 0, HG_OBJECT_TYPE_INTEGER, HG_OBJECT_TYPE_REAL, @@ -242,7 +242,7 @@ enum hg_object_type_e { HG_OBJECT_TYPE_END = (1 << 7) - 1 }; -enum hg_stack_type_e { +enum hg_stacktype_e { HG_STACK_TYPE_OSTACK, HG_STACK_TYPE_ESTACK, HG_STACK_TYPE_DSTACK, @@ -795,7 +795,7 @@ enum hg_system_encoding_e { HG_enc_END }; -enum hg_emulation_type_e { +enum hg_emulationtype_e { HG_EMU_BEGIN, HG_EMU_PS_LEVEL_1, HG_EMU_PS_LEVEL_2, diff --git a/hieroglyph/vm.c b/hieroglyph/vm.c index 1d86abb..cd4a776 100644 --- a/hieroglyph/vm.c +++ b/hieroglyph/vm.c @@ -37,12 +37,12 @@ typedef struct hg_vm_private_s hg_vm_private_t; struct hg_vm_private_s { - hg_vm_t instance; - hg_error_t error; - hg_emulation_type_t current_level; - hg_object_t *io[HG_FILE_TYPE_END]; - hg_stack_t *stack[HG_STACK_TYPE_END]; - hg_object_t *dict; + hg_vm_t instance; + hg_error_t error; + hg_emulationtype_t current_level; + hg_object_t *io[HG_FILE_TYPE_END]; + hg_stack_t *stack[HG_STACK_TYPE_END]; + hg_object_t *dict; }; @@ -277,7 +277,7 @@ hg_vm_t * hg_vm_new(void) { hg_vm_private_t *retval = g_new0(hg_vm_private_t, 1); - hg_stack_type_t i; + hg_stacktype_t i; /* initialize VM */ retval->current_level = HG_EMU_BEGIN; @@ -308,9 +308,25 @@ hg_vm_new(void) void hg_vm_destroy(hg_vm_t *vm) { + hg_vm_private_t *priv; + hg_filetype_t i; + hg_stacktype_t j; + hg_return_if_fail (vm != NULL); - /* XXX */ + priv = (hg_vm_private_t *)vm; + + for (i = 0; i < HG_FILE_TYPE_END; i++) { + if (priv->io[i]) + hg_object_free(vm, priv->io[i]); + } + for (j = 0; j < HG_STACK_TYPE_END; j++) { + if (priv->stack[j]) + hg_stack_free(vm, priv->stack[j]); + } + if (priv->dict) + hg_object_free(vm, priv->dict); + g_free(vm); } @@ -482,7 +498,7 @@ hg_vm_finalize(hg_vm_t *vm) return TRUE; } -hg_emulation_type_t +hg_emulationtype_t hg_vm_get_emulation_level(hg_vm_t *vm) { hg_vm_private_t *priv; @@ -495,8 +511,8 @@ hg_vm_get_emulation_level(hg_vm_t *vm) } gboolean -hg_vm_set_emulation_level(hg_vm_t *vm, - hg_emulation_type_t level) +hg_vm_set_emulation_level(hg_vm_t *vm, + hg_emulationtype_t level) { hg_vm_private_t *priv; diff --git a/hieroglyph/vm.h b/hieroglyph/vm.h index 0c293f2..c29b195 100644 --- a/hieroglyph/vm.h +++ b/hieroglyph/vm.h @@ -28,40 +28,40 @@ hg_vm_t *hg_vm_new (void) G_GNUC_WARN_UNUSED_RESULT; -void hg_vm_destroy (hg_vm_t *vm); -gpointer hg_vm_malloc (hg_vm_t *vm, - gsize size) G_GNUC_WARN_UNUSED_RESULT; -gpointer hg_vm_realloc (hg_vm_t *vm, - gpointer object, - gsize size) G_GNUC_WARN_UNUSED_RESULT; -void hg_vm_mfree (hg_vm_t *vm, - gpointer data); -guchar hg_vm_get_object_format (hg_vm_t *vm); -void hg_vm_get_attributes (hg_vm_t *vm, - hg_attribute_t *attr); -void hg_vm_set_error (hg_vm_t *vm, - hg_error_t error); -hg_error_t hg_vm_get_error (hg_vm_t *vm); -void hg_vm_clear_error (hg_vm_t *vm); -hg_object_t *hg_vm_get_io (hg_vm_t *vm, - hg_filetype_t iotype); -void hg_vm_set_io (hg_vm_t *vm, - hg_object_t *object); -gboolean hg_vm_initialize (hg_vm_t *vm); -gboolean hg_vm_finalize (hg_vm_t *vm); -hg_emulation_type_t hg_vm_get_emulation_level(hg_vm_t *vm); -gboolean hg_vm_set_emulation_level(hg_vm_t *vm, - hg_emulation_type_t level); -gboolean hg_vm_step (hg_vm_t *vm); -hg_object_t *hg_vm_get_dict (hg_vm_t *vm); -hg_object_t *hg_vm_dict_lookup (hg_vm_t *vm, - hg_object_t *object); -gboolean hg_vm_dict_remove (hg_vm_t *vm, - const gchar *name, - gboolean remove_all); -hg_object_t *hg_vm_get_currentdict (hg_vm_t *vm); -hg_object_t *hg_vm_name_lookup (hg_vm_t *vm, - const gchar *name) G_GNUC_WARN_UNUSED_RESULT; +void hg_vm_destroy (hg_vm_t *vm); +gpointer hg_vm_malloc (hg_vm_t *vm, + gsize size) G_GNUC_WARN_UNUSED_RESULT; +gpointer hg_vm_realloc (hg_vm_t *vm, + gpointer object, + gsize size) G_GNUC_WARN_UNUSED_RESULT; +void hg_vm_mfree (hg_vm_t *vm, + gpointer data); +guchar hg_vm_get_object_format (hg_vm_t *vm); +void hg_vm_get_attributes (hg_vm_t *vm, + hg_attribute_t *attr); +void hg_vm_set_error (hg_vm_t *vm, + hg_error_t error); +hg_error_t hg_vm_get_error (hg_vm_t *vm); +void hg_vm_clear_error (hg_vm_t *vm); +hg_object_t *hg_vm_get_io (hg_vm_t *vm, + hg_filetype_t iotype); +void hg_vm_set_io (hg_vm_t *vm, + hg_object_t *object); +gboolean hg_vm_initialize (hg_vm_t *vm); +gboolean hg_vm_finalize (hg_vm_t *vm); +hg_emulationtype_t hg_vm_get_emulation_level(hg_vm_t *vm); +gboolean hg_vm_set_emulation_level(hg_vm_t *vm, + hg_emulationtype_t level); +gboolean hg_vm_step (hg_vm_t *vm); +hg_object_t *hg_vm_get_dict (hg_vm_t *vm); +hg_object_t *hg_vm_dict_lookup (hg_vm_t *vm, + hg_object_t *object); +gboolean hg_vm_dict_remove (hg_vm_t *vm, + const gchar *name, + gboolean remove_all); +hg_object_t *hg_vm_get_currentdict (hg_vm_t *vm); +hg_object_t *hg_vm_name_lookup (hg_vm_t *vm, + const gchar *name) G_GNUC_WARN_UNUSED_RESULT; #endif /* __HIEROGLYPH__VM_H__ */ |