summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2007-09-18 12:30:42 +0000
committerAkira TAGOH <akira@tagoh.org>2007-09-18 12:30:42 +0000
commit61564e7980f1f8bdfbbf9c749e1ac4775f0ebbbd (patch)
treeaf3b8c074ddde23758044d8d2a370c893533fcba
parent58c9ccfa8b22735eeed3a73c10b1ea8876adde06 (diff)
trivial fixes
-rw-r--r--hieroglyph/hgoperator.c10
-rw-r--r--hieroglyph/hgoperator.h4
-rw-r--r--hieroglyph/hgtypes.h12
-rw-r--r--hieroglyph/vm.c38
-rw-r--r--hieroglyph/vm.h68
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__ */