summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoakim Sindholt <opensource@zhasha.com>2009-12-16 12:42:53 +0100
committerJoakim Sindholt <opensource@zhasha.com>2009-12-16 12:42:53 +0100
commit7baec6b83ae5533f9f19baef3850265b07cf12ab (patch)
treec75fbb8394a1cad68f8502abbdc55de12221e9e1
parent8f7ebb483339322ee2fa4d589c51279617a20910 (diff)
csview: implement bitfields in the worst way possible
-rw-r--r--Makefile.am3
-rw-r--r--src/cs.c67
-rw-r--r--src/csimport.c131
-rw-r--r--src/csview.c1928
-rw-r--r--src/csview.vala562
-rw-r--r--src/main.c200
-rw-r--r--src/registers.c314
7 files changed, 1850 insertions, 1355 deletions
diff --git a/Makefile.am b/Makefile.am
index 9fc63d3..d1d16ff 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,6 +25,9 @@ rsim_VALAFLAGS = \
--pkg gtk+-2.0 \
--pkg libxml-2.0
+rsim_CFLAGS = \
+ -fno-strict-aliasing
+
rsim_LDADD = \
$(RSIM_LIBS) \
$(NULL)
diff --git a/src/cs.c b/src/cs.c
index 613753c..60ce2d8 100644
--- a/src/cs.c
+++ b/src/cs.c
@@ -1,3 +1,6 @@
+/* cs.c generated by valac, the Vala compiler
+ * generated from cs.vala, do not modify */
+
#include <glib.h>
#include <glib-object.h>
@@ -66,6 +69,7 @@ typedef struct _EmulationPacket3Class EmulationPacket3Class;
typedef struct _EmulationPacketIterator EmulationPacketIterator;
typedef struct _EmulationPacketIteratorClass EmulationPacketIteratorClass;
typedef struct _EmulationPacketIteratorPrivate EmulationPacketIteratorPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _EmulationPacketBasePrivate EmulationPacketBasePrivate;
typedef struct _EmulationPacket0Private EmulationPacket0Private;
typedef struct _EmulationPacket1Private EmulationPacket1Private;
@@ -314,15 +318,17 @@ inline EmulationPacketBase* emulation_make_packet (guint32 header, guint32* dwor
}
+static gpointer _g_object_ref0 (gpointer self) {
+ return self ? g_object_ref (self) : NULL;
+}
+
+
EmulationPacketIterator* emulation_packet_iterator_construct (GType object_type, EmulationPacketBase* p) {
EmulationPacketIterator * self;
- EmulationPacketBase* _tmp1_;
EmulationPacketBase* _tmp0_;
g_return_val_if_fail (p != NULL, NULL);
- self = g_object_newv (object_type, 0, NULL);
- _tmp1_ = NULL;
- _tmp0_ = NULL;
- self->priv->m_packet = (_tmp1_ = (_tmp0_ = p, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)), (self->priv->m_packet == NULL) ? NULL : (self->priv->m_packet = (g_object_unref (self->priv->m_packet), NULL)), _tmp1_);
+ self = (EmulationPacketIterator*) g_object_new (object_type, NULL);
+ self->priv->m_packet = (_tmp0_ = _g_object_ref0 (p), _g_object_unref0 (self->priv->m_packet), _tmp0_);
self->priv->m_pos = (guint) 0;
return self;
}
@@ -364,7 +370,7 @@ static void emulation_packet_iterator_instance_init (EmulationPacketIterator * s
static void emulation_packet_iterator_finalize (GObject* obj) {
EmulationPacketIterator * self;
self = EMULATION_PACKET_ITERATOR (obj);
- (self->priv->m_packet == NULL) ? NULL : (self->priv->m_packet = (g_object_unref (self->priv->m_packet), NULL));
+ _g_object_unref0 (self->priv->m_packet);
G_OBJECT_CLASS (emulation_packet_iterator_parent_class)->finalize (obj);
}
@@ -405,7 +411,7 @@ inline guint32 emulation_packet_base_extract_bits (EmulationPacketBase* self, gu
EmulationPacketBase* emulation_packet_base_construct (GType object_type) {
EmulationPacketBase * self;
- self = g_object_newv (object_type, 0, NULL);
+ self = (EmulationPacketBase*) g_object_new (object_type, NULL);
return self;
}
@@ -469,7 +475,6 @@ GType emulation_packet_base_get_type (void) {
static void emulation_packet_base_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
EmulationPacketBase * self;
- gpointer boxed;
self = EMULATION_PACKET_BASE (object);
switch (property_id) {
case EMULATION_PACKET_BASE_EXTRACT_TYPE:
@@ -574,7 +579,6 @@ GType emulation_packet0_get_type (void) {
static void emulation_packet0_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
EmulationPacket0 * self;
- gpointer boxed;
self = EMULATION_PACKET0 (object);
switch (property_id) {
case EMULATION_PACKET0_ADDR:
@@ -674,7 +678,6 @@ GType emulation_packet1_get_type (void) {
static void emulation_packet1_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
EmulationPacket1 * self;
- gpointer boxed;
self = EMULATION_PACKET1 (object);
switch (property_id) {
case EMULATION_PACKET1_ADDR1:
@@ -740,7 +743,6 @@ GType emulation_packet2_get_type (void) {
static void emulation_packet2_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
EmulationPacket2 * self;
- gpointer boxed;
self = EMULATION_PACKET2 (object);
switch (property_id) {
case EMULATION_PACKET2_LENGTH:
@@ -825,7 +827,6 @@ GType emulation_packet3_get_type (void) {
static void emulation_packet3_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
EmulationPacket3 * self;
- gpointer boxed;
self = EMULATION_PACKET3 (object);
switch (property_id) {
case EMULATION_PACKET3_OPCODE:
@@ -861,9 +862,8 @@ static guint emulation_cs_check (guint32* cs, guint len) {
if (!(i < len)) {
break;
}
- _tmp1_ = NULL;
i = i + emulation_packet_base_get_length (_tmp1_ = emulation_make_packet (cs[i], NULL));
- (_tmp1_ == NULL) ? NULL : (_tmp1_ = (g_object_unref (_tmp1_), NULL));
+ _g_object_unref0 (_tmp1_);
if ((i + 1) > len) {
result = (guint) 0;
return result;
@@ -884,10 +884,9 @@ static guint32* _vala_array_dup1 (guint32* self, int length) {
static EmulationPacketBase** _vala_array_dup2 (EmulationPacketBase** self, int length) {
EmulationPacketBase** result;
int i;
- EmulationPacketBase* _tmp8_;
result = g_new0 (EmulationPacketBase*, length);
for (i = 0; i < length; i++) {
- result[i] = (_tmp8_ = self[i], (_tmp8_ == NULL) ? NULL : g_object_ref (_tmp8_));
+ result[i] = _g_object_ref0 (self[i]);
}
return result;
}
@@ -904,25 +903,20 @@ EmulationCS* emulation_cs_construct (GType object_type, guint32* cs, guint len)
gint _tmp5__size;
gint _tmp5__length1;
EmulationPacketBase** _tmp5_;
- EmulationPacketBase** _tmp10_;
EmulationPacketBase** _tmp9_;
- EmulationPacketBase* _tmp8_;
- self = g_object_newv (object_type, 0, NULL);
+ EmulationPacketBase** _tmp8_;
+ self = (EmulationCS*) g_object_new (object_type, NULL);
if (len > 0) {
g_assert (cs != NULL);
}
_tmp0_ = (_tmp0__length1 = 0, NULL);
if (len > 0) {
guint32* _tmp1_;
- _tmp1_ = NULL;
_tmp0_ = (_tmp1_ = g_new0 (guint32, len), _tmp0_ = (g_free (_tmp0_), NULL), _tmp0__length1 = len, _tmp0__size = _tmp0__length1, _tmp1_);
} else {
guint32* _tmp2_;
- _tmp2_ = NULL;
_tmp0_ = (_tmp2_ = NULL, _tmp0_ = (g_free (_tmp0_), NULL), _tmp0__length1 = 0, _tmp0__size = _tmp0__length1, _tmp2_);
}
- _tmp4_ = NULL;
- _tmp3_ = NULL;
self->dwords = (_tmp4_ = (_tmp3_ = _tmp0_, (_tmp3_ == NULL) ? ((gpointer) _tmp3_) : _vala_array_dup1 (_tmp3_, _tmp0__length1)), self->dwords = (g_free (self->dwords), NULL), self->dwords_length1 = _tmp0__length1, _tmp4_);
if (len > 0) {
memcpy (self->dwords, cs, (gsize) (len * sizeof (guint32)));
@@ -931,17 +925,12 @@ EmulationCS* emulation_cs_construct (GType object_type, guint32* cs, guint len)
_tmp5_ = (_tmp5__length1 = 0, NULL);
if (pkt_count > 0) {
EmulationPacketBase** _tmp6_;
- _tmp6_ = NULL;
_tmp5_ = (_tmp6_ = g_new0 (EmulationPacketBase*, pkt_count + 1), _tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) g_object_unref), NULL), _tmp5__length1 = pkt_count, _tmp5__size = _tmp5__length1, _tmp6_);
} else {
EmulationPacketBase** _tmp7_;
- _tmp7_ = NULL;
_tmp5_ = (_tmp7_ = NULL, _tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) g_object_unref), NULL), _tmp5__length1 = 0, _tmp5__size = _tmp5__length1, _tmp7_);
}
- _tmp10_ = NULL;
- _tmp9_ = NULL;
- _tmp8_ = NULL;
- self->packets = (_tmp10_ = (_tmp9_ = _tmp5_, (_tmp9_ == NULL) ? ((gpointer) _tmp9_) : _vala_array_dup2 (_tmp9_, _tmp5__length1)), self->packets = (_vala_array_free (self->packets, self->packets_length1, (GDestroyNotify) g_object_unref), NULL), self->packets_length1 = _tmp5__length1, _tmp10_);
+ self->packets = (_tmp9_ = (_tmp8_ = _tmp5_, (_tmp8_ == NULL) ? ((gpointer) _tmp8_) : _vala_array_dup2 (_tmp8_, _tmp5__length1)), self->packets = (_vala_array_free (self->packets, self->packets_length1, (GDestroyNotify) g_object_unref), NULL), self->packets_length1 = _tmp5__length1, _tmp9_);
if (pkt_count > 0) {
guint pkt;
pkt = (guint) 0;
@@ -949,26 +938,24 @@ EmulationCS* emulation_cs_construct (GType object_type, guint32* cs, guint len)
guint i;
i = (guint) 0;
{
- gboolean _tmp11_;
- _tmp11_ = TRUE;
+ gboolean _tmp10_;
+ _tmp10_ = TRUE;
while (TRUE) {
- guint32* _tmp12_;
- EmulationPacketBase* _tmp13_;
- if (!_tmp11_) {
+ guint32* _tmp11_ = NULL;
+ EmulationPacketBase* _tmp12_;
+ if (!_tmp10_) {
i++;
}
- _tmp11_ = FALSE;
+ _tmp10_ = FALSE;
if (!(i < len)) {
break;
}
- _tmp12_ = NULL;
if (i < (len - 1)) {
- _tmp12_ = &self->dwords[i + 1];
+ _tmp11_ = &self->dwords[i + 1];
} else {
- _tmp12_ = NULL;
+ _tmp11_ = NULL;
}
- _tmp13_ = NULL;
- self->packets[pkt] = (_tmp13_ = emulation_make_packet (self->dwords[i], _tmp12_), (self->packets[pkt] == NULL) ? NULL : (self->packets[pkt] = (g_object_unref (self->packets[pkt]), NULL)), _tmp13_);
+ self->packets[pkt] = (_tmp12_ = emulation_make_packet (self->dwords[i], _tmp11_), _g_object_unref0 (self->packets[pkt]), _tmp12_);
i = i + emulation_packet_base_get_length (self->packets[pkt++]);
}
}
diff --git a/src/csimport.c b/src/csimport.c
index 710f82d..dd8b299 100644
--- a/src/csimport.c
+++ b/src/csimport.c
@@ -1,3 +1,6 @@
+/* csimport.c generated by valac, the Vala compiler
+ * generated from csimport.vala, do not modify */
+
#include <glib.h>
#include <glib-object.h>
@@ -49,6 +52,10 @@ typedef struct _EmulationCSClass EmulationCSClass;
typedef struct _GUICSImport GUICSImport;
typedef struct _GUICSImportClass GUICSImportClass;
typedef struct _GUICSImportPrivate GUICSImportPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_array_free0(var) ((var == NULL) ? NULL : (var = (g_array_free (var, TRUE), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _fclose0(var) ((var == NULL) ? NULL : (var = (fclose (var), NULL)))
#define EMULATION_TYPE_PACKET_BASE (emulation_packet_base_get_type ())
#define EMULATION_PACKET_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_PACKET_BASE, EmulationPacketBase))
@@ -151,12 +158,10 @@ static void gui_cs_import_dword_cellrenderer (GUICSImport* self, GtkTreeViewColu
g_return_if_fail (cell != NULL);
g_return_if_fail (model != NULL);
id = (guint32) 0;
- gtk_tree_model_get (model, &(*iter), 0, &id, -1, -1);
+ gtk_tree_model_get (model, iter, 0, &id, -1, -1);
g_assert (id < self->priv->m_dwords->len);
- _tmp0_ = NULL;
- _tmp1_ = NULL;
g_object_set ((_tmp1_ = cell, GTK_IS_CELL_RENDERER_TEXT (_tmp1_) ? ((GtkCellRendererText*) _tmp1_) : NULL), "text", _tmp0_ = g_strdup_printf ("0x%08X", g_array_index (self->priv->m_dwords, guint32, (guint) id)), NULL);
- _tmp0_ = (g_free (_tmp0_), NULL);
+ _g_free0 (_tmp0_);
}
@@ -169,16 +174,14 @@ static inline void gui_cs_import_create_name_frame (GUICSImport* self) {
namealign = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new (1.0f, 0.5f, 1.0f, 1.0f));
g_object_set (namealign, "left-padding", (guint) 12, NULL);
g_object_set (namealign, "bottom-padding", (guint) 4, NULL);
- _tmp0_ = NULL;
- gtk_container_add ((GtkContainer*) namealign, (GtkWidget*) (self->priv->m_name_entry = (_tmp0_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), (self->priv->m_name_entry == NULL) ? NULL : (self->priv->m_name_entry = (g_object_unref (self->priv->m_name_entry), NULL)), _tmp0_)));
+ gtk_container_add ((GtkContainer*) namealign, (GtkWidget*) (self->priv->m_name_entry = (_tmp0_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->m_name_entry), _tmp0_)));
nameframe = g_object_ref_sink ((GtkFrame*) gtk_frame_new ("<b>Name</b>"));
- _tmp1_ = NULL;
gtk_label_set_use_markup ((_tmp1_ = gtk_frame_get_label_widget (nameframe), GTK_IS_LABEL (_tmp1_) ? ((GtkLabel*) _tmp1_) : NULL), TRUE);
g_object_set (nameframe, "shadow", GTK_SHADOW_NONE, NULL);
gtk_container_add ((GtkContainer*) nameframe, (GtkWidget*) namealign);
gtk_box_pack_start ((GtkBox*) ((GtkDialog*) self)->vbox, (GtkWidget*) nameframe, FALSE, TRUE, (guint) 0);
- (namealign == NULL) ? NULL : (namealign = (g_object_unref (namealign), NULL));
- (nameframe == NULL) ? NULL : (nameframe = (g_object_unref (nameframe), NULL));
+ _g_object_unref0 (namealign);
+ _g_object_unref0 (nameframe);
}
@@ -212,18 +215,14 @@ static inline void gui_cs_import_create_dwords_frame (GUICSImport* self) {
GtkFrame* dwordsframe;
GtkWidget* _tmp7_;
g_return_if_fail (self != NULL);
- _tmp0_ = NULL;
- self->priv->m_dwords_store = (_tmp0_ = gtk_list_store_new (2, G_TYPE_UINT, G_TYPE_STRING, NULL), (self->priv->m_dwords_store == NULL) ? NULL : (self->priv->m_dwords_store = (g_object_unref (self->priv->m_dwords_store), NULL)), _tmp0_);
+ self->priv->m_dwords_store = (_tmp0_ = gtk_list_store_new (2, G_TYPE_UINT, G_TYPE_STRING, NULL), _g_object_unref0 (self->priv->m_dwords_store), _tmp0_);
dwords_list = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ());
- _tmp1_ = NULL;
gtk_tree_view_insert_column_with_attributes (dwords_list, -1, "#", (GtkCellRenderer*) (_tmp1_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), "text", 0, NULL, NULL);
- (_tmp1_ == NULL) ? NULL : (_tmp1_ = (g_object_unref (_tmp1_), NULL));
- _tmp2_ = NULL;
+ _g_object_unref0 (_tmp1_);
gtk_tree_view_insert_column_with_data_func (dwords_list, -1, "Value", (GtkCellRenderer*) (_tmp2_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), _gui_cs_import_dword_cellrenderer_gtk_tree_cell_data_func, g_object_ref (self), g_object_unref);
- (_tmp2_ == NULL) ? NULL : (_tmp2_ = (g_object_unref (_tmp2_), NULL));
- _tmp3_ = NULL;
+ _g_object_unref0 (_tmp2_);
gtk_tree_view_insert_column_with_attributes (dwords_list, -1, "Meta", (GtkCellRenderer*) (_tmp3_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), "text", 1, NULL, NULL);
- (_tmp3_ == NULL) ? NULL : (_tmp3_ = (g_object_unref (_tmp3_), NULL));
+ _g_object_unref0 (_tmp3_);
gtk_container_set_border_width ((GtkContainer*) dwords_list, (guint) 5);
gtk_tree_view_set_model (dwords_list, (GtkTreeModel*) self->priv->m_dwords_store);
sw = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
@@ -235,15 +234,13 @@ static inline void gui_cs_import_create_dwords_frame (GUICSImport* self) {
col.red = (guint16) 0xFFFF;
col.green = (guint16) 0x0000;
col.blue = (guint16) 0x0000;
- _tmp5_ = NULL;
- self->priv->m_status_label = (_tmp5_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL)), (self->priv->m_status_label == NULL) ? NULL : (self->priv->m_status_label = (g_object_unref (self->priv->m_status_label), NULL)), _tmp5_);
+ self->priv->m_status_label = (_tmp5_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL)), _g_object_unref0 (self->priv->m_status_label), _tmp5_);
loadbtn = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label ("Load"));
loadalign = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new (0.5f, 0.5f, 1.0f, 1.0f));
loadbox = g_object_ref_sink ((GtkHButtonBox*) gtk_hbutton_box_new ());
gtk_widget_modify_fg ((GtkWidget*) self->priv->m_status_label, GTK_STATE_NORMAL, &col);
- _tmp6_ = NULL;
gtk_button_set_image (loadbtn, (GtkWidget*) (_tmp6_ = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock ("gtk-convert", GTK_ICON_SIZE_BUTTON))));
- (_tmp6_ == NULL) ? NULL : (_tmp6_ = (g_object_unref (_tmp6_), NULL));
+ _g_object_unref0 (_tmp6_);
g_signal_connect_object (loadbtn, "clicked", (GCallback) _gui_cs_import_load_cs_gtk_button_clicked, self, 0);
gtk_box_pack_end ((GtkBox*) loadbox, (GtkWidget*) loadbtn, FALSE, TRUE, (guint) 0);
g_object_set (loadalign, "right-padding", (guint) 3, NULL);
@@ -259,21 +256,20 @@ static inline void gui_cs_import_create_dwords_frame (GUICSImport* self) {
g_object_set (dwordsalign, "bottom-padding", (guint) 3, NULL);
gtk_container_add ((GtkContainer*) dwordsalign, (GtkWidget*) dbox);
dwordsframe = g_object_ref_sink ((GtkFrame*) gtk_frame_new ("<b>DWORDs</b>"));
- _tmp7_ = NULL;
gtk_label_set_use_markup ((_tmp7_ = gtk_frame_get_label_widget (dwordsframe), GTK_IS_LABEL (_tmp7_) ? ((GtkLabel*) _tmp7_) : NULL), TRUE);
g_object_set (dwordsframe, "shadow", GTK_SHADOW_NONE, NULL);
gtk_container_add ((GtkContainer*) dwordsframe, (GtkWidget*) dwordsalign);
gtk_box_pack_start ((GtkBox*) ((GtkDialog*) self)->vbox, (GtkWidget*) dwordsframe, TRUE, TRUE, (guint) 0);
gtk_window_set_transient_for ((GtkWindow*) self, (GtkWindow*) gui_main);
- (dwords_list == NULL) ? NULL : (dwords_list = (g_object_unref (dwords_list), NULL));
- (sw == NULL) ? NULL : (sw = (g_object_unref (sw), NULL));
- (loadbtn == NULL) ? NULL : (loadbtn = (g_object_unref (loadbtn), NULL));
- (loadalign == NULL) ? NULL : (loadalign = (g_object_unref (loadalign), NULL));
- (loadbox == NULL) ? NULL : (loadbox = (g_object_unref (loadbox), NULL));
- (bbox == NULL) ? NULL : (bbox = (g_object_unref (bbox), NULL));
- (dbox == NULL) ? NULL : (dbox = (g_object_unref (dbox), NULL));
- (dwordsalign == NULL) ? NULL : (dwordsalign = (g_object_unref (dwordsalign), NULL));
- (dwordsframe == NULL) ? NULL : (dwordsframe = (g_object_unref (dwordsframe), NULL));
+ _g_object_unref0 (dwords_list);
+ _g_object_unref0 (sw);
+ _g_object_unref0 (loadbtn);
+ _g_object_unref0 (loadalign);
+ _g_object_unref0 (loadbox);
+ _g_object_unref0 (bbox);
+ _g_object_unref0 (dbox);
+ _g_object_unref0 (dwordsalign);
+ _g_object_unref0 (dwordsframe);
}
@@ -284,9 +280,8 @@ static void gui_cs_import_on_response (GUICSImport* self, GtkDialog* source, gin
case GTK_RESPONSE_APPLY:
{
EmulationCS* _tmp0_;
- _tmp0_ = NULL;
emulation_add_cs (gtk_entry_get_text (self->priv->m_name_entry), _tmp0_ = emulation_cs_new (&g_array_index (self->priv->m_dwords, guint32, (guint) 0), self->priv->m_dwords->len));
- (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL));
+ _g_object_unref0 (_tmp0_);
gtk_object_destroy ((GtkObject*) self);
break;
}
@@ -306,19 +301,18 @@ static void gui_cs_import_load_cs (GUICSImport* self, GtkButton* source) {
fc = g_object_ref_sink ((GtkFileChooserDialog*) gtk_file_chooser_dialog_new ("Open File", (GtkWindow*) self, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL, NULL));
if (gtk_dialog_run ((GtkDialog*) fc) == GTK_RESPONSE_ACCEPT) {
char* _tmp0_;
- _tmp0_ = NULL;
gui_cs_import_open_cs (self, _tmp0_ = gtk_file_chooser_get_filename ((GtkFileChooser*) fc));
- _tmp0_ = (g_free (_tmp0_), NULL);
+ _g_free0 (_tmp0_);
}
gtk_object_destroy ((GtkObject*) fc);
- (fc == NULL) ? NULL : (fc = (g_object_unref (fc), NULL));
+ _g_object_unref0 (fc);
}
static void gui_cs_import_open_cs (GUICSImport* self, const char* filename) {
FILE* fs;
GtkTreeIter iter = {0};
- guint32 dword;
+ guint32 dword = 0U;
guint dword_count;
char* pktname;
g_return_if_fail (self != NULL);
@@ -328,18 +322,15 @@ static void gui_cs_import_open_cs (GUICSImport* self, const char* filename) {
char* _tmp0_;
GtkMessageDialog* _tmp1_;
GtkMessageDialog* dlg;
- _tmp0_ = NULL;
- _tmp1_ = NULL;
- dlg = (_tmp1_ = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _tmp0_ = g_strconcat ("Unable to open the selected file: ", filename, NULL), NULL)), _tmp0_ = (g_free (_tmp0_), NULL), _tmp1_);
+ dlg = (_tmp1_ = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _tmp0_ = g_strconcat ("Unable to open the selected file: ", filename, NULL))), _g_free0 (_tmp0_), _tmp1_);
gtk_dialog_run ((GtkDialog*) dlg);
gtk_object_destroy ((GtkObject*) dlg);
- (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL));
- (fs == NULL) ? NULL : (fs = (fclose (fs), NULL));
+ _g_object_unref0 (dlg);
+ _fclose0 (fs);
return;
}
gtk_list_store_clear (self->priv->m_dwords_store);
g_array_set_size (self->priv->m_dwords, (guint) 0);
- dword = 0U;
dword_count = (guint) 0;
pktname = NULL;
{
@@ -358,8 +349,7 @@ static void gui_cs_import_open_cs (GUICSImport* self, const char* filename) {
break;
}
gtk_list_store_append (self->priv->m_dwords_store, &iter);
- _tmp3_ = NULL;
- pktname = (_tmp3_ = NULL, pktname = (g_free (pktname), NULL), _tmp3_);
+ pktname = (_tmp3_ = NULL, _g_free0 (pktname), _tmp3_);
if (dword_count > 0) {
dword_count--;
} else {
@@ -368,11 +358,9 @@ static void gui_cs_import_open_cs (GUICSImport* self, const char* filename) {
char* _tmp4_;
p = emulation_make_packet (dword, NULL);
dword_count = emulation_packet_base_get_length (p);
- _tmp5_ = NULL;
- _tmp4_ = NULL;
- pktname = (_tmp5_ = g_strconcat ("packet", _tmp4_ = g_strdup_printf ("%u", emulation_packet_base_get_type_id (p)), NULL), pktname = (g_free (pktname), NULL), _tmp5_);
- _tmp4_ = (g_free (_tmp4_), NULL);
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
+ pktname = (_tmp5_ = g_strconcat ("packet", _tmp4_ = g_strdup_printf ("%u", emulation_packet_base_get_type_id (p)), NULL), _g_free0 (pktname), _tmp5_);
+ _g_free0 (_tmp4_);
+ _g_object_unref0 (p);
}
gtk_list_store_set (self->priv->m_dwords_store, &iter, 0, id, 1, pktname, -1, -1);
g_array_append_val (self->priv->m_dwords, dword);
@@ -381,25 +369,24 @@ static void gui_cs_import_open_cs (GUICSImport* self, const char* filename) {
}
self->priv->m_validcs = dword_count == 0;
gui_cs_import_update_okbtn (self);
- (fs == NULL) ? NULL : (fs = (fclose (fs), NULL));
- pktname = (g_free (pktname), NULL);
+ _fclose0 (fs);
+ _g_free0 (pktname);
}
static void gui_cs_import_update_okbtn (GUICSImport* self) {
g_return_if_fail (self != NULL);
if (self->priv->m_validcs) {
- gboolean _tmp0_;
- _tmp0_ = FALSE;
+ gboolean _tmp0_ = FALSE;
if (gtk_entry_get_text_length (self->priv->m_name_entry) > 0) {
_tmp0_ = self->priv->m_dwords->len > 0;
} else {
_tmp0_ = FALSE;
}
- g_object_set ((GtkWidget*) self->priv->m_okbtn, "sensitive", _tmp0_, NULL);
+ gtk_widget_set_sensitive ((GtkWidget*) self->priv->m_okbtn, _tmp0_);
gtk_label_set_label (self->priv->m_status_label, "");
} else {
- g_object_set ((GtkWidget*) self->priv->m_okbtn, "sensitive", FALSE, NULL);
+ gtk_widget_set_sensitive ((GtkWidget*) self->priv->m_okbtn, FALSE);
gtk_label_set_label (self->priv->m_status_label, "This CS is invalid!");
}
}
@@ -417,6 +404,11 @@ GUICSImport* gui_cs_import_new (void) {
}
+static gpointer _g_object_ref0 (gpointer self) {
+ return self ? g_object_ref (self) : NULL;
+}
+
+
static void _gui_cs_import_update_okbtn_gtk_editable_changed (GtkEntry* _sender, gpointer self) {
gui_cs_import_update_okbtn (self);
}
@@ -429,29 +421,22 @@ static void _gui_cs_import_on_response_gtk_dialog_response (GtkDialog* _sender,
static GObject * gui_cs_import_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
- GUICSImportClass * klass;
GObjectClass * parent_class;
GUICSImport * self;
- klass = GUI_CS_IMPORT_CLASS (g_type_class_peek (GUI_TYPE_CS_IMPORT));
- parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
+ parent_class = G_OBJECT_CLASS (gui_cs_import_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = GUI_CS_IMPORT (obj);
{
- GtkButton* _tmp2_;
GtkButton* _tmp1_;
GtkWidget* _tmp0_;
- GArray* _tmp3_;
+ GArray* _tmp2_;
gui_cs_import_create_name_frame (self);
gui_cs_import_create_dwords_frame (self);
gtk_dialog_add_button ((GtkDialog*) self, GTK_STOCK_CLOSE, (gint) GTK_RESPONSE_CLOSE);
- _tmp2_ = NULL;
- _tmp1_ = NULL;
- _tmp0_ = NULL;
- self->priv->m_okbtn = (_tmp2_ = (_tmp1_ = (_tmp0_ = gtk_dialog_add_button ((GtkDialog*) self, GTK_STOCK_OK, (gint) GTK_RESPONSE_APPLY), GTK_IS_BUTTON (_tmp0_) ? ((GtkButton*) _tmp0_) : NULL), (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->m_okbtn == NULL) ? NULL : (self->priv->m_okbtn = (g_object_unref (self->priv->m_okbtn), NULL)), _tmp2_);
- g_object_set ((GtkWidget*) self->priv->m_okbtn, "sensitive", FALSE, NULL);
+ self->priv->m_okbtn = (_tmp1_ = _g_object_ref0 ((_tmp0_ = gtk_dialog_add_button ((GtkDialog*) self, GTK_STOCK_OK, (gint) GTK_RESPONSE_APPLY), GTK_IS_BUTTON (_tmp0_) ? ((GtkButton*) _tmp0_) : NULL)), _g_object_unref0 (self->priv->m_okbtn), _tmp1_);
+ gtk_widget_set_sensitive ((GtkWidget*) self->priv->m_okbtn, FALSE);
self->priv->m_validcs = FALSE;
- _tmp3_ = NULL;
- self->priv->m_dwords = (_tmp3_ = g_array_new (FALSE, FALSE, (guint) sizeof (guint32)), (self->priv->m_dwords == NULL) ? NULL : (self->priv->m_dwords = (g_array_free (self->priv->m_dwords, TRUE), NULL)), _tmp3_);
+ self->priv->m_dwords = (_tmp2_ = g_array_new (FALSE, FALSE, (guint) sizeof (guint32)), _g_array_free0 (self->priv->m_dwords), _tmp2_);
g_signal_connect_object ((GtkEditable*) self->priv->m_name_entry, "changed", (GCallback) _gui_cs_import_update_okbtn_gtk_editable_changed, self, 0);
gtk_window_set_title ((GtkWindow*) self, "Import CS");
g_signal_connect_object ((GtkDialog*) self, "response", (GCallback) _gui_cs_import_on_response_gtk_dialog_response, self, 0);
@@ -478,11 +463,11 @@ static void gui_cs_import_instance_init (GUICSImport * self) {
static void gui_cs_import_finalize (GObject* obj) {
GUICSImport * self;
self = GUI_CS_IMPORT (obj);
- (self->priv->m_name_entry == NULL) ? NULL : (self->priv->m_name_entry = (g_object_unref (self->priv->m_name_entry), NULL));
- (self->priv->m_status_label == NULL) ? NULL : (self->priv->m_status_label = (g_object_unref (self->priv->m_status_label), NULL));
- (self->priv->m_dwords_store == NULL) ? NULL : (self->priv->m_dwords_store = (g_object_unref (self->priv->m_dwords_store), NULL));
- (self->priv->m_okbtn == NULL) ? NULL : (self->priv->m_okbtn = (g_object_unref (self->priv->m_okbtn), NULL));
- (self->priv->m_dwords == NULL) ? NULL : (self->priv->m_dwords = (g_array_free (self->priv->m_dwords, TRUE), NULL));
+ _g_object_unref0 (self->priv->m_name_entry);
+ _g_object_unref0 (self->priv->m_status_label);
+ _g_object_unref0 (self->priv->m_dwords_store);
+ _g_object_unref0 (self->priv->m_okbtn);
+ _g_array_free0 (self->priv->m_dwords);
G_OBJECT_CLASS (gui_cs_import_parent_class)->finalize (obj);
}
diff --git a/src/csview.c b/src/csview.c
index 9412a32..80ad233 100644
--- a/src/csview.c
+++ b/src/csview.c
@@ -1,9 +1,13 @@
+/* csview.c generated by valac, the Vala compiler
+ * generated from csview.vala, do not modify */
+
#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
+#include <gobject/gvaluecollector.h>
#define GUI_TYPE_CS_LIST_MODEL (gui_cs_list_model_get_type ())
@@ -40,6 +44,47 @@ typedef struct _EmulationSpecClass EmulationSpecClass;
#define GUI_CS_LIST_MODEL_TYPE_COLUMNS (gui_cs_list_model_columns_get_type ())
#define GUI_CS_LIST_MODEL_TYPE_ROW_TYPE (gui_cs_list_model_row_type_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define EMULATION_TYPE_REGISTER_LIST (emulation_register_list_get_type ())
+#define EMULATION_REGISTER_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_REGISTER_LIST, EmulationRegisterList))
+#define EMULATION_REGISTER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EMULATION_TYPE_REGISTER_LIST, EmulationRegisterListClass))
+#define EMULATION_IS_REGISTER_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EMULATION_TYPE_REGISTER_LIST))
+#define EMULATION_IS_REGISTER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EMULATION_TYPE_REGISTER_LIST))
+#define EMULATION_REGISTER_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EMULATION_TYPE_REGISTER_LIST, EmulationRegisterListClass))
+
+typedef struct _EmulationRegisterList EmulationRegisterList;
+typedef struct _EmulationRegisterListClass EmulationRegisterListClass;
+
+#define EMULATION_TYPE_REGISTER (emulation_register_get_type ())
+#define EMULATION_REGISTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_REGISTER, EmulationRegister))
+#define EMULATION_REGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EMULATION_TYPE_REGISTER, EmulationRegisterClass))
+#define EMULATION_IS_REGISTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EMULATION_TYPE_REGISTER))
+#define EMULATION_IS_REGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EMULATION_TYPE_REGISTER))
+#define EMULATION_REGISTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EMULATION_TYPE_REGISTER, EmulationRegisterClass))
+
+typedef struct _EmulationRegister EmulationRegister;
+typedef struct _EmulationRegisterClass EmulationRegisterClass;
+
+#define EMULATION_TYPE_REGISTER_INFO (emulation_register_info_get_type ())
+#define EMULATION_REGISTER_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_REGISTER_INFO, EmulationRegisterInfo))
+#define EMULATION_REGISTER_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EMULATION_TYPE_REGISTER_INFO, EmulationRegisterInfoClass))
+#define EMULATION_IS_REGISTER_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EMULATION_TYPE_REGISTER_INFO))
+#define EMULATION_IS_REGISTER_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EMULATION_TYPE_REGISTER_INFO))
+#define EMULATION_REGISTER_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EMULATION_TYPE_REGISTER_INFO, EmulationRegisterInfoClass))
+
+typedef struct _EmulationRegisterInfo EmulationRegisterInfo;
+typedef struct _EmulationRegisterInfoClass EmulationRegisterInfoClass;
+
+#define GUI_CS_LIST_MODEL_TYPE_CS_ITER (gui_cs_list_model_cs_iter_get_type ())
+#define GUI_CS_LIST_MODEL_CS_ITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GUI_CS_LIST_MODEL_TYPE_CS_ITER, GUICSListModelCSIter))
+#define GUI_CS_LIST_MODEL_CS_ITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GUI_CS_LIST_MODEL_TYPE_CS_ITER, GUICSListModelCSIterClass))
+#define GUI_CS_LIST_MODEL_IS_CS_ITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GUI_CS_LIST_MODEL_TYPE_CS_ITER))
+#define GUI_CS_LIST_MODEL_IS_CS_ITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GUI_CS_LIST_MODEL_TYPE_CS_ITER))
+#define GUI_CS_LIST_MODEL_CS_ITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GUI_CS_LIST_MODEL_TYPE_CS_ITER, GUICSListModelCSIterClass))
+
+typedef struct _GUICSListModelCSIter GUICSListModelCSIter;
+typedef struct _GUICSListModelCSIterClass GUICSListModelCSIterClass;
typedef struct _EmulationCSPrivate EmulationCSPrivate;
#define EMULATION_TYPE_PACKET_BASE (emulation_packet_base_get_type ())
@@ -51,7 +96,7 @@ typedef struct _EmulationCSPrivate EmulationCSPrivate;
typedef struct _EmulationPacketBase EmulationPacketBase;
typedef struct _EmulationPacketBaseClass EmulationPacketBaseClass;
-typedef struct _EmulationPacketBasePrivate EmulationPacketBasePrivate;
+#define _gui_cs_list_model_cs_iter_unref0(var) ((var == NULL) ? NULL : (var = (gui_cs_list_model_cs_iter_unref (var), NULL)))
#define EMULATION_TYPE_PACKET0 (emulation_packet0_get_type ())
#define EMULATION_PACKET0(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_PACKET0, EmulationPacket0))
@@ -72,6 +117,19 @@ typedef struct _EmulationPacket0Class EmulationPacket0Class;
typedef struct _EmulationPacket1 EmulationPacket1;
typedef struct _EmulationPacket1Class EmulationPacket1Class;
+#define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))
+
+#define EMULATION_TYPE_BITFIELD (emulation_bitfield_get_type ())
+#define EMULATION_BITFIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_BITFIELD, EmulationBitfield))
+#define EMULATION_BITFIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EMULATION_TYPE_BITFIELD, EmulationBitfieldClass))
+#define EMULATION_IS_BITFIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EMULATION_TYPE_BITFIELD))
+#define EMULATION_IS_BITFIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EMULATION_TYPE_BITFIELD))
+#define EMULATION_BITFIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EMULATION_TYPE_BITFIELD, EmulationBitfieldClass))
+
+typedef struct _EmulationBitfield EmulationBitfield;
+typedef struct _EmulationBitfieldClass EmulationBitfieldClass;
+typedef struct _EmulationPacketBasePrivate EmulationPacketBasePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
#define EMULATION_TYPE_PACKET3 (emulation_packet3_get_type ())
#define EMULATION_PACKET3(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_PACKET3, EmulationPacket3))
@@ -82,36 +140,8 @@ typedef struct _EmulationPacket1Class EmulationPacket1Class;
typedef struct _EmulationPacket3 EmulationPacket3;
typedef struct _EmulationPacket3Class EmulationPacket3Class;
-
-#define EMULATION_TYPE_REGISTER_LIST (emulation_register_list_get_type ())
-#define EMULATION_REGISTER_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_REGISTER_LIST, EmulationRegisterList))
-#define EMULATION_REGISTER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EMULATION_TYPE_REGISTER_LIST, EmulationRegisterListClass))
-#define EMULATION_IS_REGISTER_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EMULATION_TYPE_REGISTER_LIST))
-#define EMULATION_IS_REGISTER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EMULATION_TYPE_REGISTER_LIST))
-#define EMULATION_REGISTER_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EMULATION_TYPE_REGISTER_LIST, EmulationRegisterListClass))
-
-typedef struct _EmulationRegisterList EmulationRegisterList;
-typedef struct _EmulationRegisterListClass EmulationRegisterListClass;
-
-#define EMULATION_TYPE_REGISTER (emulation_register_get_type ())
-#define EMULATION_REGISTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_REGISTER, EmulationRegister))
-#define EMULATION_REGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EMULATION_TYPE_REGISTER, EmulationRegisterClass))
-#define EMULATION_IS_REGISTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EMULATION_TYPE_REGISTER))
-#define EMULATION_IS_REGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EMULATION_TYPE_REGISTER))
-#define EMULATION_REGISTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EMULATION_TYPE_REGISTER, EmulationRegisterClass))
-
-typedef struct _EmulationRegister EmulationRegister;
-typedef struct _EmulationRegisterClass EmulationRegisterClass;
-
-#define EMULATION_TYPE_REGISTER_INFO (emulation_register_info_get_type ())
-#define EMULATION_REGISTER_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_REGISTER_INFO, EmulationRegisterInfo))
-#define EMULATION_REGISTER_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EMULATION_TYPE_REGISTER_INFO, EmulationRegisterInfoClass))
-#define EMULATION_IS_REGISTER_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EMULATION_TYPE_REGISTER_INFO))
-#define EMULATION_IS_REGISTER_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EMULATION_TYPE_REGISTER_INFO))
-#define EMULATION_REGISTER_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EMULATION_TYPE_REGISTER_INFO, EmulationRegisterInfoClass))
-
-typedef struct _EmulationRegisterInfo EmulationRegisterInfo;
-typedef struct _EmulationRegisterInfoClass EmulationRegisterInfoClass;
+typedef struct _GUICSListModelCSIterPrivate GUICSListModelCSIterPrivate;
+typedef struct _GUICSListModelParamSpecCSIter GUICSListModelParamSpecCSIter;
#define GUI_TYPE_CS_VIEW (gui_cs_view_get_type ())
#define GUI_CS_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GUI_TYPE_CS_VIEW, GUICSView))
@@ -150,6 +180,7 @@ typedef enum {
GUI_CS_LIST_MODEL_ROW_TYPE_PACKET = 0,
GUI_CS_LIST_MODEL_ROW_TYPE_HEADER,
GUI_CS_LIST_MODEL_ROW_TYPE_DWORD,
+ GUI_CS_LIST_MODEL_ROW_TYPE_VARIANT,
GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD,
GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD
} GUICSListModelRowType;
@@ -179,6 +210,25 @@ struct _EmulationPacketBaseClass {
guint (*get_length) (EmulationPacketBase* self);
};
+struct _GUICSListModelCSIter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ GUICSListModelCSIterPrivate * priv;
+};
+
+struct _GUICSListModelCSIterClass {
+ GTypeClass parent_class;
+ void (*finalize) (GUICSListModelCSIter *self);
+};
+
+struct _GUICSListModelCSIterPrivate {
+ GtkTreeIter* m_iter;
+};
+
+struct _GUICSListModelParamSpecCSIter {
+ GParamSpec parent_instance;
+};
+
struct _GUICSView {
GtkWindow parent_instance;
GUICSViewPrivate * priv;
@@ -233,6 +283,7 @@ static gint gui_cs_list_model_packet_headers_length_length1;
static guint* gui_cs_list_model_packet_headers_length = NULL;
static gint gui_cs_list_model_packet_headers_length_length1 = 0;
static gint gui_cs_list_model_packet_headers_length_size = 0;
+static gpointer gui_cs_list_model_cs_iter_parent_class = NULL;
static gpointer gui_cs_list_model_parent_class = NULL;
static GtkTreeModelIface* gui_cs_list_model_gtk_tree_model_parent_iface = NULL;
static gpointer gui_cs_view_parent_class = NULL;
@@ -250,55 +301,80 @@ static char** _vala_array_dup3 (char** self, int length);
static char** _vala_array_dup4 (char** self, int length);
static char** _vala_array_dup5 (char** self, int length);
static char** _vala_array_dup6 (char** self, int length);
-guint gui_cs_list_model_get_packet_num (GUICSListModel* self, GtkTreeIter* iter);
-static inline guint gui_cs_list_model_get_dword_num (GUICSListModel* self, GtkTreeIter* iter);
-static inline guint gui_cs_list_model_get_bitfield_num (GUICSListModel* self, GtkTreeIter* iter);
-static inline void gui_cs_list_model_set_packet_num (GUICSListModel* self, GtkTreeIter* iter, guint n);
-static inline void gui_cs_list_model_set_dword_num (GUICSListModel* self, GtkTreeIter* iter, guint n);
-static inline void gui_cs_list_model_set_bitfield_num (GUICSListModel* self, GtkTreeIter* iter, guint n);
-static inline gboolean gui_cs_list_model_is_header (GUICSListModel* self, GtkTreeIter* iter);
-static inline gboolean gui_cs_list_model_has_dwords (GUICSListModel* self, GtkTreeIter* iter);
-static inline gboolean gui_cs_list_model_has_bitfields (GUICSListModel* self, GtkTreeIter* iter);
-static inline guint gui_cs_list_model_dword_index (GUICSListModel* self, GtkTreeIter* iter);
-static inline guint gui_cs_list_model_bitfield_index (GUICSListModel* self, GtkTreeIter* iter);
-static inline void gui_cs_list_model_set_iter (GUICSListModel* self, GtkTreeIter* iter, guint p, guint d, guint b, gboolean stamp);
GUICSListModel* gui_cs_list_model_new (EmulationCS* cs, EmulationSpec* spec);
GUICSListModel* gui_cs_list_model_construct (GType object_type, EmulationCS* cs, EmulationSpec* spec);
-GUICSListModelRowType gui_cs_list_model_get_row_type (GUICSListModel* self, GtkTreeIter* iter);
static GtkTreeModelFlags gui_cs_list_model_real_get_flags (GtkTreeModel* base);
static gint gui_cs_list_model_real_get_n_columns (GtkTreeModel* base);
static GType gui_cs_list_model_real_get_column_type (GtkTreeModel* base, gint i);
+GType emulation_register_list_get_type (void);
+EmulationRegisterList* emulation_spec_translate_addr (EmulationSpec* self, guint addr);
+guint emulation_register_list_get_length (EmulationRegisterList* self);
+static guint gui_cs_list_model_get_variant_count (GUICSListModel* self, guint32 addr);
+GType emulation_register_get_type (void);
+EmulationRegister* emulation_register_list_get (EmulationRegisterList* self, guint index);
+GType emulation_register_info_get_type (void);
+EmulationRegisterInfo* emulation_register_get_info (EmulationRegister* self);
+guint emulation_register_info_get_length (EmulationRegisterInfo* self);
+static guint gui_cs_list_model_get_bitfield_count (GUICSListModel* self, guint32 addr, guint variant);
+GUICSListModelCSIter* gui_cs_list_model_cs_iter_new (GtkTreeIter* iter);
+GUICSListModelCSIter* gui_cs_list_model_cs_iter_construct (GType object_type, GtkTreeIter* iter);
+gpointer gui_cs_list_model_cs_iter_ref (gpointer instance);
+void gui_cs_list_model_cs_iter_unref (gpointer instance);
+GParamSpec* gui_cs_list_model_param_spec_cs_iter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void gui_cs_list_model_value_set_cs_iter (GValue* value, gpointer v_object);
+gpointer gui_cs_list_model_value_get_cs_iter (const GValue* value);
+GType gui_cs_list_model_cs_iter_get_type (void);
+void gui_cs_list_model_cs_iter_reset (GUICSListModelCSIter* self);
GType emulation_packet_base_get_type (void);
+void gui_cs_list_model_cs_iter_set_packet (GUICSListModelCSIter* self, guint32 value);
+guint32 gui_cs_list_model_cs_iter_get_packet (GUICSListModelCSIter* self);
guint emulation_packet_base_get_length (EmulationPacketBase* self);
+void gui_cs_list_model_cs_iter_set_dword (GUICSListModelCSIter* self, guint32 value);
+void gui_cs_list_model_cs_iter_set_in_dwords (GUICSListModelCSIter* self, gboolean value);
+guint32 gui_cs_list_model_cs_iter_get_dword (GUICSListModelCSIter* self);
guint emulation_packet_base_get_type_id (EmulationPacketBase* self);
-static gboolean gui_cs_list_model_real_get_iter (GtkTreeModel* base, GtkTreeIter* iter, const GtkTreePath* path);
+void gui_cs_list_model_cs_iter_set_bitfield (GUICSListModelCSIter* self, guint32 value);
+void gui_cs_list_model_cs_iter_set_in_bitfields (GUICSListModelCSIter* self, gboolean value);
+GType emulation_packet0_get_type (void);
+guint32 emulation_packet0_get_addr (EmulationPacket0* self);
+GType emulation_packet1_get_type (void);
+guint32 emulation_packet1_get_addr1 (EmulationPacket1* self);
+guint32 emulation_packet1_get_addr2 (EmulationPacket1* self);
+void gui_cs_list_model_cs_iter_set_variant (GUICSListModelCSIter* self, guint32 value);
+void gui_cs_list_model_cs_iter_set_in_variants (GUICSListModelCSIter* self, gboolean value);
+guint32 gui_cs_list_model_cs_iter_get_variant (GUICSListModelCSIter* self);
+static gboolean gui_cs_list_model_real_get_iter (GtkTreeModel* base, GtkTreeIter* iter, GtkTreePath* path);
+gboolean gui_cs_list_model_cs_iter_get_in_dwords (GUICSListModelCSIter* self);
+gboolean gui_cs_list_model_cs_iter_get_in_bitfields (GUICSListModelCSIter* self);
+gboolean gui_cs_list_model_cs_iter_get_in_variants (GUICSListModelCSIter* self);
+guint32 gui_cs_list_model_cs_iter_get_bitfield (GUICSListModelCSIter* self);
static GtkTreePath* gui_cs_list_model_real_get_path (GtkTreeModel* base, GtkTreeIter* iter);
+guint32 gui_cs_list_model_get_numeric_value (GUICSListModel* self, GtkTreeIter* iter);
+const char* emulation_register_info_get_name (EmulationRegisterInfo* self);
+static char* gui_cs_list_model_translate_addr (GUICSListModel* self, guint32 addr);
+static const char* gui_cs_list_model_variant_name (GUICSListModel* self, guint32 addr, guint variant);
+GType emulation_bitfield_get_type (void);
+EmulationBitfield* emulation_register_info_get (EmulationRegisterInfo* self, guint index);
+const char* emulation_bitfield_get_name (EmulationBitfield* self);
+static const char* gui_cs_list_model_bitfield_name (GUICSListModel* self, guint32 addr, guint variant, guint bitfield);
+guint8 emulation_bitfield_get_high (EmulationBitfield* self);
+guint8 emulation_bitfield_get_low (EmulationBitfield* self);
+static guint32 gui_cs_list_model_bitfield_value (GUICSListModel* self, guint32 addr, guint variant, guint bitfield, guint32 dword);
+GUICSListModelRowType gui_cs_list_model_cs_iter_get_row_type (GUICSListModelCSIter* self);
+static guint32 gui_cs_list_model_dword_addr (GUICSListModel* self, guint p, guint d);
guint32 emulation_packet_base_get (EmulationPacketBase* self, guint index);
-GType emulation_packet0_get_type (void);
guint32 emulation_packet0_get__ADDR (EmulationPacket0* self);
guint32 emulation_packet0_get__ONE_REG_WR (EmulationPacket0* self);
guint32 emulation_packet0_get__COUNT (EmulationPacket0* self);
-GType emulation_packet1_get_type (void);
guint32 emulation_packet1_get__ADDR1 (EmulationPacket1* self);
guint32 emulation_packet1_get__ADDR2 (EmulationPacket1* self);
GType emulation_packet3_get_type (void);
guint32 emulation_packet3_get__IT_OPCODE (EmulationPacket3* self);
guint32 emulation_packet3_get__COUNT (EmulationPacket3* self);
-guint32 gui_cs_list_model_get_numeric_value (GUICSListModel* self, GtkTreeIter* iter);
-GType emulation_register_list_get_type (void);
-EmulationRegisterList* emulation_spec_translate_addr (EmulationSpec* self, guint addr);
-GType emulation_register_get_type (void);
-EmulationRegister* emulation_register_list_get (EmulationRegisterList* self, guint index);
-GType emulation_register_info_get_type (void);
-EmulationRegisterInfo* emulation_register_get_info (EmulationRegister* self);
-const char* emulation_register_info_get_name (EmulationRegisterInfo* self);
-static char* gui_cs_list_model_translate_addr (GUICSListModel* self, guint32 addr);
-guint32 emulation_packet0_get_addr (EmulationPacket0* self);
-guint32 emulation_packet1_get_addr1 (EmulationPacket1* self);
-guint32 emulation_packet1_get_addr2 (EmulationPacket1* self);
-gboolean emulation_packet0_get_one_reg_wr (EmulationPacket0* self);
static void gui_cs_list_model_real_get_value (GtkTreeModel* base, GtkTreeIter* iter, gint column, GValue* val);
+gboolean emulation_packet0_get_one_reg_wr (EmulationPacket0* self);
static gboolean gui_cs_list_model_real_iter_next (GtkTreeModel* base, GtkTreeIter* iter);
+void gui_cs_list_model_cs_iter_copy (GUICSListModelCSIter* self, GUICSListModelCSIter* it);
static gboolean gui_cs_list_model_real_iter_children (GtkTreeModel* base, GtkTreeIter* iter, GtkTreeIter* parent);
static gboolean gui_cs_list_model_real_iter_has_child (GtkTreeModel* base, GtkTreeIter* iter);
static gint gui_cs_list_model_real_iter_n_children (GtkTreeModel* base, GtkTreeIter* iter);
@@ -306,6 +382,14 @@ static gboolean gui_cs_list_model_real_iter_nth_child (GtkTreeModel* base, GtkTr
static gboolean gui_cs_list_model_real_iter_parent (GtkTreeModel* base, GtkTreeIter* iter, GtkTreeIter* child);
static void gui_cs_list_model_real_ref_node (GtkTreeModel* base, GtkTreeIter* iter);
static void gui_cs_list_model_real_unref_node (GtkTreeModel* base, GtkTreeIter* iter);
+#define GUI_CS_LIST_MODEL_CS_ITER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GUI_CS_LIST_MODEL_TYPE_CS_ITER, GUICSListModelCSIterPrivate))
+enum {
+ GUI_CS_LIST_MODEL_CS_ITER_DUMMY_PROPERTY
+};
+static inline guint32 gui_cs_list_model_cs_iter_get_iter_bits (GUICSListModelCSIter* self, guint low, guint high);
+static inline void gui_cs_list_model_cs_iter_set_iter_bits (GUICSListModelCSIter* self, guint low, guint high, guint32 val);
+gboolean gui_cs_list_model_cs_iter_get_is_header (GUICSListModelCSIter* self);
+static void gui_cs_list_model_cs_iter_finalize (GUICSListModelCSIter* obj);
static void gui_cs_list_model_finalize (GObject* obj);
GType gui_cs_view_get_type (void);
#define GUI_CS_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GUI_TYPE_CS_VIEW, GUICSViewPrivate))
@@ -335,7 +419,7 @@ GType gui_cs_list_model_columns_get_type (void) {
GType gui_cs_list_model_row_type_get_type (void) {
static GType gui_cs_list_model_row_type_type_id = 0;
if (G_UNLIKELY (gui_cs_list_model_row_type_type_id == 0)) {
- static const GEnumValue values[] = {{GUI_CS_LIST_MODEL_ROW_TYPE_PACKET, "GUI_CS_LIST_MODEL_ROW_TYPE_PACKET", "packet"}, {GUI_CS_LIST_MODEL_ROW_TYPE_HEADER, "GUI_CS_LIST_MODEL_ROW_TYPE_HEADER", "header"}, {GUI_CS_LIST_MODEL_ROW_TYPE_DWORD, "GUI_CS_LIST_MODEL_ROW_TYPE_DWORD", "dword"}, {GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD, "GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD", "bitfield"}, {GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD, "GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD", "header-bitfield"}, {0, NULL, NULL}};
+ static const GEnumValue values[] = {{GUI_CS_LIST_MODEL_ROW_TYPE_PACKET, "GUI_CS_LIST_MODEL_ROW_TYPE_PACKET", "packet"}, {GUI_CS_LIST_MODEL_ROW_TYPE_HEADER, "GUI_CS_LIST_MODEL_ROW_TYPE_HEADER", "header"}, {GUI_CS_LIST_MODEL_ROW_TYPE_DWORD, "GUI_CS_LIST_MODEL_ROW_TYPE_DWORD", "dword"}, {GUI_CS_LIST_MODEL_ROW_TYPE_VARIANT, "GUI_CS_LIST_MODEL_ROW_TYPE_VARIANT", "variant"}, {GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD, "GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD", "bitfield"}, {GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD, "GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD", "header-bitfield"}, {0, NULL, NULL}};
gui_cs_list_model_row_type_type_id = g_enum_register_static ("GUICSListModelRowType", values);
}
return gui_cs_list_model_row_type_type_id;
@@ -345,10 +429,9 @@ GType gui_cs_list_model_row_type_get_type (void) {
static char** _vala_array_dup3 (char** self, int length) {
char** result;
int i;
- const char* _tmp5_;
result = g_new0 (char*, length);
for (i = 0; i < length; i++) {
- result[i] = (_tmp5_ = self[i], (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_));
+ result[i] = g_strdup (self[i]);
}
return result;
}
@@ -357,12 +440,10 @@ static char** _vala_array_dup3 (char** self, int length) {
static char** _vala_array_dup4 (char** self, int length) {
char** result;
int i;
- const char* _tmp7_;
- char** _tmp6_;
- const char* _tmp5_;
+ char** _tmp5_;
result = g_new0 (char*, length);
for (i = 0; i < length; i++) {
- result[i] = (_tmp7_ = self[i], (_tmp7_ == NULL) ? NULL : g_strdup (_tmp7_));
+ result[i] = g_strdup (self[i]);
}
return result;
}
@@ -371,14 +452,11 @@ static char** _vala_array_dup4 (char** self, int length) {
static char** _vala_array_dup5 (char** self, int length) {
char** result;
int i;
- const char* _tmp9_;
- char** _tmp8_;
- const char* _tmp7_;
char** _tmp6_;
- const char* _tmp5_;
+ char** _tmp5_;
result = g_new0 (char*, length);
for (i = 0; i < length; i++) {
- result[i] = (_tmp9_ = self[i], (_tmp9_ == NULL) ? NULL : g_strdup (_tmp9_));
+ result[i] = g_strdup (self[i]);
}
return result;
}
@@ -387,136 +465,31 @@ static char** _vala_array_dup5 (char** self, int length) {
static char** _vala_array_dup6 (char** self, int length) {
char** result;
int i;
- const char* _tmp11_;
- char** _tmp10_;
- const char* _tmp9_;
- char** _tmp8_;
- const char* _tmp7_;
+ char** _tmp7_;
char** _tmp6_;
- const char* _tmp5_;
+ char** _tmp5_;
result = g_new0 (char*, length);
for (i = 0; i < length; i++) {
- result[i] = (_tmp11_ = self[i], (_tmp11_ == NULL) ? NULL : g_strdup (_tmp11_));
+ result[i] = g_strdup (self[i]);
}
return result;
}
-inline guint gui_cs_list_model_get_packet_num (GUICSListModel* self, GtkTreeIter* iter) {
- guint result;
- g_return_val_if_fail (self != NULL, 0U);
- result = *((guint*) (&(*iter).user_data));
- return result;
-}
-
-
-static inline guint gui_cs_list_model_get_dword_num (GUICSListModel* self, GtkTreeIter* iter) {
- guint result;
- g_return_val_if_fail (self != NULL, 0U);
- result = *((guint*) (&(*iter).user_data2));
- return result;
-}
-
-
-static inline guint gui_cs_list_model_get_bitfield_num (GUICSListModel* self, GtkTreeIter* iter) {
- guint result;
- g_return_val_if_fail (self != NULL, 0U);
- result = *((guint*) (&(*iter).user_data3));
- return result;
-}
-
-
-static inline void gui_cs_list_model_set_packet_num (GUICSListModel* self, GtkTreeIter* iter, guint n) {
- g_return_if_fail (self != NULL);
- (*iter).user_data = *((void**) (&n));
-}
-
-
-static inline void gui_cs_list_model_set_dword_num (GUICSListModel* self, GtkTreeIter* iter, guint n) {
- g_return_if_fail (self != NULL);
- (*iter).user_data2 = *((void**) (&n));
-}
-
-
-static inline void gui_cs_list_model_set_bitfield_num (GUICSListModel* self, GtkTreeIter* iter, guint n) {
- g_return_if_fail (self != NULL);
- (*iter).user_data3 = *((void**) (&n));
-}
-
-
-/* for dwords, 0 means no dwords, 1 means just the header, and 2+ means header and packets
- for bitfields, 0 means no bitfields, 1+ means bitfields */
-static inline gboolean gui_cs_list_model_is_header (GUICSListModel* self, GtkTreeIter* iter) {
- gboolean result;
- g_return_val_if_fail (self != NULL, FALSE);
- result = gui_cs_list_model_get_dword_num (self, &(*iter)) == 1;
- return result;
-}
-
-
-static inline gboolean gui_cs_list_model_has_dwords (GUICSListModel* self, GtkTreeIter* iter) {
- gboolean result;
- g_return_val_if_fail (self != NULL, FALSE);
- result = gui_cs_list_model_get_dword_num (self, &(*iter)) >= 1;
- return result;
-}
-
-
-static inline gboolean gui_cs_list_model_has_bitfields (GUICSListModel* self, GtkTreeIter* iter) {
- gboolean result;
- g_return_val_if_fail (self != NULL, FALSE);
- result = gui_cs_list_model_get_bitfield_num (self, &(*iter)) >= 1;
- return result;
-}
-
-
-static inline guint gui_cs_list_model_dword_index (GUICSListModel* self, GtkTreeIter* iter) {
- guint result;
- g_return_val_if_fail (self != NULL, 0U);
- result = gui_cs_list_model_get_dword_num (self, &(*iter)) - 2;
- return result;
-}
-
-
-static inline guint gui_cs_list_model_bitfield_index (GUICSListModel* self, GtkTreeIter* iter) {
- guint result;
- g_return_val_if_fail (self != NULL, 0U);
- result = gui_cs_list_model_get_bitfield_num (self, &(*iter)) - 1;
- return result;
-}
-
-
-static inline void gui_cs_list_model_set_iter (GUICSListModel* self, GtkTreeIter* iter, guint p, guint d, guint b, gboolean stamp) {
- gint _tmp0_;
- g_return_if_fail (self != NULL);
- gui_cs_list_model_set_packet_num (self, &(*iter), p);
- gui_cs_list_model_set_dword_num (self, &(*iter), d);
- gui_cs_list_model_set_bitfield_num (self, &(*iter), b);
- _tmp0_ = 0;
- if (stamp) {
- _tmp0_ = self->priv->m_stamp;
- } else {
- _tmp0_ = 0;
- }
- (*iter).stamp = _tmp0_;
+static gpointer _g_object_ref0 (gpointer self) {
+ return self ? g_object_ref (self) : NULL;
}
GUICSListModel* gui_cs_list_model_construct (GType object_type, EmulationCS* cs, EmulationSpec* spec) {
GUICSListModel * self;
- EmulationCS* _tmp1_;
EmulationCS* _tmp0_;
- EmulationSpec* _tmp3_;
- EmulationSpec* _tmp2_;
+ EmulationSpec* _tmp1_;
g_return_val_if_fail (cs != NULL, NULL);
g_return_val_if_fail (spec != NULL, NULL);
- self = g_object_newv (object_type, 0, NULL);
- _tmp1_ = NULL;
- _tmp0_ = NULL;
- self->priv->m_cs = (_tmp1_ = (_tmp0_ = cs, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)), (self->priv->m_cs == NULL) ? NULL : (self->priv->m_cs = (g_object_unref (self->priv->m_cs), NULL)), _tmp1_);
- _tmp3_ = NULL;
- _tmp2_ = NULL;
- self->priv->m_spec = (_tmp3_ = (_tmp2_ = spec, (_tmp2_ == NULL) ? NULL : g_object_ref (_tmp2_)), (self->priv->m_spec == NULL) ? NULL : (self->priv->m_spec = (g_object_unref (self->priv->m_spec), NULL)), _tmp3_);
+ self = (GUICSListModel*) g_object_new (object_type, NULL);
+ self->priv->m_cs = (_tmp0_ = _g_object_ref0 (cs), _g_object_unref0 (self->priv->m_cs), _tmp0_);
+ self->priv->m_spec = (_tmp1_ = _g_object_ref0 (spec), _g_object_unref0 (self->priv->m_spec), _tmp1_);
self->priv->m_stamp = 19449216;
return self;
}
@@ -527,37 +500,6 @@ GUICSListModel* gui_cs_list_model_new (EmulationCS* cs, EmulationSpec* spec) {
}
-GUICSListModelRowType gui_cs_list_model_get_row_type (GUICSListModel* self, GtkTreeIter* iter) {
- GUICSListModelRowType result;
- g_return_val_if_fail (self != NULL, 0);
- if (gui_cs_list_model_has_bitfields (self, &(*iter))) {
- GUICSListModelRowType _tmp0_;
- _tmp0_ = 0;
- if (gui_cs_list_model_is_header (self, &(*iter))) {
- _tmp0_ = GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD;
- } else {
- _tmp0_ = GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD;
- }
- result = _tmp0_;
- return result;
- } else {
- if (gui_cs_list_model_has_dwords (self, &(*iter))) {
- GUICSListModelRowType _tmp1_;
- _tmp1_ = 0;
- if (gui_cs_list_model_is_header (self, &(*iter))) {
- _tmp1_ = GUI_CS_LIST_MODEL_ROW_TYPE_HEADER;
- } else {
- _tmp1_ = GUI_CS_LIST_MODEL_ROW_TYPE_DWORD;
- }
- result = _tmp1_;
- return result;
- }
- }
- result = GUI_CS_LIST_MODEL_ROW_TYPE_PACKET;
- return result;
-}
-
-
static GtkTreeModelFlags gui_cs_list_model_real_get_flags (GtkTreeModel* base) {
GUICSListModel * self;
GtkTreeModelFlags result;
@@ -585,69 +527,173 @@ static GType gui_cs_list_model_real_get_column_type (GtkTreeModel* base, gint i)
}
-static gboolean gui_cs_list_model_real_get_iter (GtkTreeModel* base, GtkTreeIter* iter, const GtkTreePath* path) {
+static guint gui_cs_list_model_get_variant_count (GUICSListModel* self, guint32 addr) {
+ guint result;
+ EmulationRegisterList* regs;
+ guint _tmp0_ = 0U;
+ g_return_val_if_fail (self != NULL, 0U);
+ regs = emulation_spec_translate_addr (self->priv->m_spec, (guint) addr);
+ if (regs == NULL) {
+ _tmp0_ = (guint) 0;
+ } else {
+ _tmp0_ = emulation_register_list_get_length (regs);
+ }
+ result = _tmp0_;
+ _g_object_unref0 (regs);
+ return result;
+}
+
+
+static guint gui_cs_list_model_get_bitfield_count (GUICSListModel* self, guint32 addr, guint variant) {
+ guint result;
+ EmulationRegisterList* regs;
+ guint _tmp0_ = 0U;
+ g_return_val_if_fail (self != NULL, 0U);
+ regs = emulation_spec_translate_addr (self->priv->m_spec, (guint) addr);
+ g_assert (regs != NULL);
+ g_assert (variant < emulation_register_list_get_length (regs));
+ if (emulation_register_info_get_length (emulation_register_get_info (emulation_register_list_get (regs, variant))) == 0) {
+ _tmp0_ = (guint) 1;
+ } else {
+ _tmp0_ = emulation_register_info_get_length (emulation_register_get_info (emulation_register_list_get (regs, variant)));
+ }
+ result = _tmp0_;
+ _g_object_unref0 (regs);
+ return result;
+}
+
+
+static gboolean gui_cs_list_model_real_get_iter (GtkTreeModel* base, GtkTreeIter* iter, GtkTreePath* path) {
GUICSListModel * self;
gboolean result;
gint depth;
- gboolean _tmp0_;
+ GUICSListModelCSIter* it;
gint* indices;
- gboolean _tmp1_;
+ gboolean _tmp0_ = FALSE;
self = (GUICSListModel*) base;
g_return_val_if_fail (path != NULL, FALSE);
depth = gtk_tree_path_get_depth (path);
- _tmp0_ = FALSE;
- if (depth <= 3) {
- _tmp0_ = depth >= 1;
- } else {
- _tmp0_ = FALSE;
- }
- g_assert (_tmp0_);
+ g_assert ((depth <= 4) && (depth >= 1));
+ it = gui_cs_list_model_cs_iter_new (iter);
+ gui_cs_list_model_cs_iter_reset (it);
indices = gtk_tree_path_get_indices (path);
- _tmp1_ = FALSE;
if (indices[0] >= self->priv->m_cs->packets_length1) {
- _tmp1_ = TRUE;
+ _tmp0_ = TRUE;
} else {
- _tmp1_ = indices[0] < 0;
+ _tmp0_ = indices[0] < 0;
}
- if (_tmp1_) {
+ if (_tmp0_) {
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
- gui_cs_list_model_set_iter (self, &(*iter), (guint) indices[0], (guint) 0, (guint) 0, FALSE);
+ gui_cs_list_model_cs_iter_set_packet (it, (guint32) indices[0]);
if (depth >= 2) {
- gboolean _tmp2_;
- _tmp2_ = FALSE;
- if (indices[1] > emulation_packet_base_get_length (self->priv->m_cs->packets[indices[0]])) {
- _tmp2_ = TRUE;
+ gboolean _tmp1_ = FALSE;
+ if (indices[1] > emulation_packet_base_get_length (self->priv->m_cs->packets[gui_cs_list_model_cs_iter_get_packet (it)])) {
+ _tmp1_ = TRUE;
} else {
- _tmp2_ = indices[1] < 0;
+ _tmp1_ = indices[1] < 0;
}
- if (_tmp2_) {
+ if (_tmp1_) {
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
- gui_cs_list_model_set_dword_num (self, &(*iter), (guint) (indices[1] + 1));
+ gui_cs_list_model_cs_iter_set_dword (it, (guint32) indices[1]);
+ gui_cs_list_model_cs_iter_set_in_dwords (it, TRUE);
}
if (depth >= 3) {
if (indices[2] < 0) {
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
- if (indices[1] == 0) {
- /* Header */
- if (indices[2] >= gui_cs_list_model_packet_headers_length[emulation_packet_base_get_type_id (self->priv->m_cs->packets[indices[0]])]) {
+ if (gui_cs_list_model_cs_iter_get_dword (it) == 0) {
+ if (indices[2] >= gui_cs_list_model_packet_headers_length[emulation_packet_base_get_type_id (self->priv->m_cs->packets[gui_cs_list_model_cs_iter_get_packet (it)])]) {
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
+ if (depth > 3) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ gui_cs_list_model_cs_iter_set_bitfield (it, (guint32) indices[2]);
+ gui_cs_list_model_cs_iter_set_in_bitfields (it, TRUE);
} else {
- /* XXX: DWORD */
- result = FALSE;
- return result;
+ guint32 addr;
+ addr = (guint32) 0;
+ switch (emulation_packet_base_get_type_id (self->priv->m_cs->packets[gui_cs_list_model_cs_iter_get_packet (it)])) {
+ case 0:
+ {
+ EmulationPacketBase* _tmp2_;
+ EmulationPacket0* p0;
+ p0 = _g_object_ref0 ((_tmp2_ = self->priv->m_cs->packets[gui_cs_list_model_cs_iter_get_packet (it)], EMULATION_IS_PACKET0 (_tmp2_) ? ((EmulationPacket0*) _tmp2_) : NULL));
+ addr = emulation_packet0_get_addr (p0);
+ _g_object_unref0 (p0);
+ break;
+ }
+ case 1:
+ {
+ EmulationPacketBase* _tmp3_;
+ EmulationPacket1* p1;
+ guint32 _tmp4_ = 0U;
+ p1 = _g_object_ref0 ((_tmp3_ = self->priv->m_cs->packets[gui_cs_list_model_cs_iter_get_packet (it)], EMULATION_IS_PACKET1 (_tmp3_) ? ((EmulationPacket1*) _tmp3_) : NULL));
+ if (gui_cs_list_model_cs_iter_get_dword (it) == 1) {
+ _tmp4_ = emulation_packet1_get_addr1 (p1);
+ } else {
+ _tmp4_ = emulation_packet1_get_addr2 (p1);
+ }
+ addr = _tmp4_;
+ _g_object_unref0 (p1);
+ break;
+ }
+ case 2:
+ {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ case 3:
+ {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ }
+ if (indices[2] < 0) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ if (indices[2] >= gui_cs_list_model_get_variant_count (self, addr)) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ gui_cs_list_model_cs_iter_set_variant (it, (guint32) indices[2]);
+ gui_cs_list_model_cs_iter_set_in_variants (it, TRUE);
+ if (depth == 4) {
+ if (indices[3] < 0) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ if (indices[3] >= gui_cs_list_model_get_bitfield_count (self, addr, (guint) gui_cs_list_model_cs_iter_get_variant (it))) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ gui_cs_list_model_cs_iter_set_bitfield (it, (guint32) indices[3]);
+ gui_cs_list_model_cs_iter_set_in_bitfields (it, TRUE);
+ }
}
- gui_cs_list_model_set_bitfield_num (self, &(*iter), (guint) (indices[2] + 1));
}
(*iter).stamp = self->priv->m_stamp;
result = TRUE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
@@ -656,180 +702,30 @@ static GtkTreePath* gui_cs_list_model_real_get_path (GtkTreeModel* base, GtkTree
GUICSListModel * self;
GtkTreePath* result;
GtkTreePath* path;
+ GUICSListModelCSIter* it;
self = (GUICSListModel*) base;
path = gtk_tree_path_new ();
- gtk_tree_path_append_index (path, (gint) gui_cs_list_model_get_packet_num (self, &(*iter)));
- if (gui_cs_list_model_has_dwords (self, &(*iter))) {
- gtk_tree_path_append_index (path, ((gint) gui_cs_list_model_get_dword_num (self, &(*iter))) - 1);
+ it = gui_cs_list_model_cs_iter_new (iter);
+ gtk_tree_path_append_index (path, (gint) gui_cs_list_model_cs_iter_get_packet (it));
+ if (gui_cs_list_model_cs_iter_get_in_dwords (it)) {
+ gtk_tree_path_append_index (path, (gint) gui_cs_list_model_cs_iter_get_dword (it));
}
- if (gui_cs_list_model_has_bitfields (self, &(*iter))) {
- gtk_tree_path_append_index (path, ((gint) gui_cs_list_model_get_bitfield_num (self, &(*iter))) - 1);
+ if (gui_cs_list_model_cs_iter_get_in_bitfields (it)) {
+ if (gui_cs_list_model_cs_iter_get_in_variants (it)) {
+ gtk_tree_path_append_index (path, (gint) gui_cs_list_model_cs_iter_get_variant (it));
+ }
+ gtk_tree_path_append_index (path, (gint) gui_cs_list_model_cs_iter_get_bitfield (it));
}
result = path;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
guint32 gui_cs_list_model_get_numeric_value (GUICSListModel* self, GtkTreeIter* iter) {
guint32 result;
- EmulationPacketBase* _tmp0_;
- EmulationPacketBase* p;
g_return_val_if_fail (self != NULL, 0U);
- _tmp0_ = NULL;
- p = (_tmp0_ = self->priv->m_cs->packets[gui_cs_list_model_get_packet_num (self, &(*iter))], (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
- switch (gui_cs_list_model_get_row_type (self, &(*iter))) {
- case GUI_CS_LIST_MODEL_ROW_TYPE_PACKET:
- {
- result = p->header;
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- case GUI_CS_LIST_MODEL_ROW_TYPE_DWORD:
- {
- result = emulation_packet_base_get (p, gui_cs_list_model_dword_index (self, &(*iter)));
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER:
- {
- result = p->header;
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- case GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD:
- {
- break;
- }
- case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD:
- {
- switch (emulation_packet_base_get_type_id (p)) {
- case 0:
- {
- EmulationPacket0* _tmp2_;
- EmulationPacketBase* _tmp1_;
- EmulationPacket0* p0;
- _tmp2_ = NULL;
- _tmp1_ = NULL;
- p0 = (_tmp2_ = (_tmp1_ = p, EMULATION_IS_PACKET0 (_tmp1_) ? ((EmulationPacket0*) _tmp1_) : NULL), (_tmp2_ == NULL) ? NULL : g_object_ref (_tmp2_));
- switch (gui_cs_list_model_bitfield_index (self, &(*iter))) {
- case 0:
- {
- result = emulation_packet0_get__ADDR (p0);
- (p0 == NULL) ? NULL : (p0 = (g_object_unref (p0), NULL));
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- case 1:
- {
- result = emulation_packet0_get__ONE_REG_WR (p0);
- (p0 == NULL) ? NULL : (p0 = (g_object_unref (p0), NULL));
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- case 2:
- {
- result = emulation_packet0_get__COUNT (p0);
- (p0 == NULL) ? NULL : (p0 = (g_object_unref (p0), NULL));
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- case 3:
- {
- result = (guint32) emulation_packet_base_get_type_id (p);
- (p0 == NULL) ? NULL : (p0 = (g_object_unref (p0), NULL));
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- }
- (p0 == NULL) ? NULL : (p0 = (g_object_unref (p0), NULL));
- break;
- }
- case 1:
- {
- EmulationPacket1* _tmp4_;
- EmulationPacketBase* _tmp3_;
- EmulationPacket1* p1;
- _tmp4_ = NULL;
- _tmp3_ = NULL;
- p1 = (_tmp4_ = (_tmp3_ = p, EMULATION_IS_PACKET1 (_tmp3_) ? ((EmulationPacket1*) _tmp3_) : NULL), (_tmp4_ == NULL) ? NULL : g_object_ref (_tmp4_));
- switch (gui_cs_list_model_bitfield_index (self, &(*iter))) {
- case 0:
- {
- result = emulation_packet1_get__ADDR1 (p1);
- (p1 == NULL) ? NULL : (p1 = (g_object_unref (p1), NULL));
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- case 1:
- {
- result = emulation_packet1_get__ADDR2 (p1);
- (p1 == NULL) ? NULL : (p1 = (g_object_unref (p1), NULL));
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- case 2:
- {
- result = (guint32) emulation_packet_base_get_type_id (p);
- (p1 == NULL) ? NULL : (p1 = (g_object_unref (p1), NULL));
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- }
- (p1 == NULL) ? NULL : (p1 = (g_object_unref (p1), NULL));
- break;
- }
- case 2:
- {
- switch (gui_cs_list_model_bitfield_index (self, &(*iter))) {
- case 0:
- {
- result = (guint32) emulation_packet_base_get_type_id (p);
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- }
- break;
- }
- case 3:
- {
- EmulationPacket3* _tmp6_;
- EmulationPacketBase* _tmp5_;
- EmulationPacket3* p3;
- _tmp6_ = NULL;
- _tmp5_ = NULL;
- p3 = (_tmp6_ = (_tmp5_ = p, EMULATION_IS_PACKET3 (_tmp5_) ? ((EmulationPacket3*) _tmp5_) : NULL), (_tmp6_ == NULL) ? NULL : g_object_ref (_tmp6_));
- switch (gui_cs_list_model_bitfield_index (self, &(*iter))) {
- case 0:
- {
- result = emulation_packet3_get__IT_OPCODE (p3);
- (p3 == NULL) ? NULL : (p3 = (g_object_unref (p3), NULL));
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- case 1:
- {
- result = emulation_packet3_get__COUNT (p3);
- (p3 == NULL) ? NULL : (p3 = (g_object_unref (p3), NULL));
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- case 2:
- {
- result = (guint32) emulation_packet_base_get_type_id (p);
- (p3 == NULL) ? NULL : (p3 = (g_object_unref (p3), NULL));
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
- return result;
- }
- }
- (p3 == NULL) ? NULL : (p3 = (g_object_unref (p3), NULL));
- break;
- }
- }
- break;
- }
- }
result = (guint32) 0;
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
return result;
}
@@ -842,40 +738,100 @@ static char* gui_cs_list_model_translate_addr (GUICSListModel* self, guint32 add
regs = emulation_spec_translate_addr (self->priv->m_spec, (guint) addr);
if (regs == NULL) {
result = g_strdup_printf ("0x%04X", addr);
- (regs == NULL) ? NULL : (regs = (g_object_unref (regs), NULL));
+ _g_object_unref0 (regs);
return result;
}
_tmp0_ = NULL;
- result = (_tmp0_ = emulation_register_info_get_name (emulation_register_get_info (emulation_register_list_get (regs, (guint) 0))), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_));
- (regs == NULL) ? NULL : (regs = (g_object_unref (regs), NULL));
+ if (emulation_register_list_get_length (regs) > 1) {
+ _tmp0_ = "Multiple";
+ } else {
+ _tmp0_ = emulation_register_info_get_name (emulation_register_get_info (emulation_register_list_get (regs, (guint) 0)));
+ }
+ result = g_strdup (_tmp0_);
+ _g_object_unref0 (regs);
+ return result;
+}
+
+
+static const char* gui_cs_list_model_variant_name (GUICSListModel* self, guint32 addr, guint variant) {
+ const char* result;
+ EmulationRegisterList* regs;
+ g_return_val_if_fail (self != NULL, NULL);
+ regs = emulation_spec_translate_addr (self->priv->m_spec, (guint) addr);
+ g_assert (regs != NULL);
+ g_assert (variant < emulation_register_list_get_length (regs));
+ result = emulation_register_info_get_name (emulation_register_get_info (emulation_register_list_get (regs, variant)));
+ _g_object_unref0 (regs);
+ return result;
+}
+
+
+static const char* gui_cs_list_model_bitfield_name (GUICSListModel* self, guint32 addr, guint variant, guint bitfield) {
+ const char* result;
+ EmulationRegisterList* regs;
+ g_return_val_if_fail (self != NULL, NULL);
+ regs = emulation_spec_translate_addr (self->priv->m_spec, (guint) addr);
+ g_assert (regs != NULL);
+ g_assert (variant < emulation_register_list_get_length (regs));
+ if (emulation_register_info_get_length (emulation_register_get_info (emulation_register_list_get (regs, variant))) > 0) {
+ g_assert (bitfield < emulation_register_info_get_length (emulation_register_get_info (emulation_register_list_get (regs, variant))));
+ result = emulation_bitfield_get_name (emulation_register_info_get (emulation_register_get_info (emulation_register_list_get (regs, variant)), bitfield));
+ _g_object_unref0 (regs);
+ return result;
+ }
+ result = "DATA_REGISTER";
+ _g_object_unref0 (regs);
+ return result;
+}
+
+
+static guint32 gui_cs_list_model_bitfield_value (GUICSListModel* self, guint32 addr, guint variant, guint bitfield, guint32 dword) {
+ guint32 result;
+ EmulationRegisterList* regs;
+ guint high;
+ guint low;
+ g_return_val_if_fail (self != NULL, 0U);
+ regs = emulation_spec_translate_addr (self->priv->m_spec, (guint) addr);
+ g_assert (regs != NULL);
+ g_assert (variant < emulation_register_list_get_length (regs));
+ high = (guint) 31;
+ low = (guint) 0;
+ if (emulation_register_info_get_length (emulation_register_get_info (emulation_register_list_get (regs, variant))) > 0) {
+ g_assert (bitfield < emulation_register_info_get_length (emulation_register_get_info (emulation_register_list_get (regs, variant))));
+ high = (guint) emulation_bitfield_get_high (emulation_register_info_get (emulation_register_get_info (emulation_register_list_get (regs, variant)), bitfield));
+ low = (guint) emulation_bitfield_get_low (emulation_register_info_get (emulation_register_get_info (emulation_register_list_get (regs, variant)), bitfield));
+ }
+ result = (dword >> low) & ((1 << ((high - low) + 1)) - 1);
+ _g_object_unref0 (regs);
return result;
- (regs == NULL) ? NULL : (regs = (g_object_unref (regs), NULL));
}
static void gui_cs_list_model_real_get_value (GtkTreeModel* base, GtkTreeIter* iter, gint column, GValue* val) {
GUICSListModel * self;
- EmulationPacketBase* _tmp0_;
+ GUICSListModelCSIter* it;
EmulationPacketBase* p;
self = (GUICSListModel*) base;
- _tmp0_ = NULL;
- p = (_tmp0_ = self->priv->m_cs->packets[gui_cs_list_model_get_packet_num (self, &(*iter))], (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
- g_value_init (&(*val), G_TYPE_STRING);
- switch (gui_cs_list_model_get_row_type (self, &(*iter))) {
+ if ((*iter).stamp != self->priv->m_stamp) {
+ return;
+ }
+ it = gui_cs_list_model_cs_iter_new (iter);
+ p = _g_object_ref0 (self->priv->m_cs->packets[gui_cs_list_model_cs_iter_get_packet (it)]);
+ g_value_init (val, G_TYPE_STRING);
+ switch (gui_cs_list_model_cs_iter_get_row_type (it)) {
case GUI_CS_LIST_MODEL_ROW_TYPE_PACKET:
{
switch (column) {
case GUI_CS_LIST_MODEL_COLUMNS_NAME:
{
- g_value_set_static_string (&(*val), gui_cs_list_model_packet_strings[emulation_packet_base_get_type_id (p)]);
+ g_value_set_static_string (val, gui_cs_list_model_packet_strings[emulation_packet_base_get_type_id (p)]);
break;
}
case GUI_CS_LIST_MODEL_COLUMNS_VALUE:
{
- char* _tmp1_;
- _tmp1_ = NULL;
- g_value_set_string (&(*val), _tmp1_ = g_strdup_printf ("0x%08X", p->header));
- _tmp1_ = (g_free (_tmp1_), NULL);
+ char* _tmp0_;
+ g_value_set_string (val, _tmp0_ = g_strdup_printf ("0x%08X", p->header));
+ _g_free0 (_tmp0_);
break;
}
case GUI_CS_LIST_MODEL_COLUMNS_TARGET:
@@ -883,43 +839,32 @@ static void gui_cs_list_model_real_get_value (GtkTreeModel* base, GtkTreeIter* i
switch (emulation_packet_base_get_type_id (p)) {
case 0:
{
- char* _tmp3_;
- EmulationPacketBase* _tmp2_;
- _tmp3_ = NULL;
- _tmp2_ = NULL;
- g_value_set_string (&(*val), _tmp3_ = gui_cs_list_model_translate_addr (self, emulation_packet0_get_addr ((_tmp2_ = p, EMULATION_IS_PACKET0 (_tmp2_) ? ((EmulationPacket0*) _tmp2_) : NULL))));
- _tmp3_ = (g_free (_tmp3_), NULL);
+ char* _tmp1_;
+ g_value_set_string (val, _tmp1_ = gui_cs_list_model_translate_addr (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (it), (guint) 1)));
+ _g_free0 (_tmp1_);
break;
}
case 1:
{
- char* _tmp9_;
- char* _tmp8_;
- char* _tmp6_;
char* _tmp5_;
- EmulationPacketBase* _tmp4_;
- EmulationPacketBase* _tmp7_;
- _tmp9_ = NULL;
- _tmp8_ = NULL;
- _tmp6_ = NULL;
- _tmp5_ = NULL;
- _tmp4_ = NULL;
- _tmp7_ = NULL;
- g_value_set_string (&(*val), _tmp9_ = g_strconcat (_tmp6_ = g_strconcat (_tmp5_ = gui_cs_list_model_translate_addr (self, emulation_packet1_get_addr1 ((_tmp4_ = p, EMULATION_IS_PACKET1 (_tmp4_) ? ((EmulationPacket1*) _tmp4_) : NULL))), " | ", NULL), _tmp8_ = gui_cs_list_model_translate_addr (self, emulation_packet1_get_addr2 ((_tmp7_ = p, EMULATION_IS_PACKET1 (_tmp7_) ? ((EmulationPacket1*) _tmp7_) : NULL))), NULL));
- _tmp9_ = (g_free (_tmp9_), NULL);
- _tmp8_ = (g_free (_tmp8_), NULL);
- _tmp6_ = (g_free (_tmp6_), NULL);
- _tmp5_ = (g_free (_tmp5_), NULL);
+ char* _tmp4_;
+ char* _tmp3_;
+ char* _tmp2_;
+ g_value_set_string (val, _tmp5_ = g_strconcat (_tmp3_ = g_strconcat (_tmp2_ = gui_cs_list_model_translate_addr (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (it), (guint) 1)), " | ", NULL), _tmp4_ = gui_cs_list_model_translate_addr (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (it), (guint) 2)), NULL));
+ _g_free0 (_tmp5_);
+ _g_free0 (_tmp4_);
+ _g_free0 (_tmp3_);
+ _g_free0 (_tmp2_);
break;
}
case 2:
{
- g_value_set_static_string (&(*val), "");
+ g_value_set_static_string (val, "");
break;
}
case 3:
{
- g_value_set_static_string (&(*val), "TODO");
+ g_value_set_static_string (val, "TODO");
break;
}
}
@@ -933,18 +878,16 @@ static void gui_cs_list_model_real_get_value (GtkTreeModel* base, GtkTreeIter* i
switch (column) {
case GUI_CS_LIST_MODEL_COLUMNS_NAME:
{
- char* _tmp10_;
- _tmp10_ = NULL;
- g_value_set_string (&(*val), _tmp10_ = g_strdup_printf ("DWORD%u", gui_cs_list_model_dword_index (self, &(*iter))));
- _tmp10_ = (g_free (_tmp10_), NULL);
+ char* _tmp6_;
+ g_value_set_string (val, _tmp6_ = g_strdup_printf ("DWORD%u", gui_cs_list_model_cs_iter_get_dword (it) - 1));
+ _g_free0 (_tmp6_);
break;
}
case GUI_CS_LIST_MODEL_COLUMNS_VALUE:
{
- char* _tmp11_;
- _tmp11_ = NULL;
- g_value_set_string (&(*val), _tmp11_ = g_strdup_printf ("0x%08X", emulation_packet_base_get (p, gui_cs_list_model_dword_index (self, &(*iter)))));
- _tmp11_ = (g_free (_tmp11_), NULL);
+ char* _tmp7_;
+ g_value_set_string (val, _tmp7_ = g_strdup_printf ("0x%08X", emulation_packet_base_get (p, (guint) (gui_cs_list_model_cs_iter_get_dword (it) - 1))));
+ _g_free0 (_tmp7_);
break;
}
case GUI_CS_LIST_MODEL_COLUMNS_TARGET:
@@ -952,50 +895,26 @@ static void gui_cs_list_model_real_get_value (GtkTreeModel* base, GtkTreeIter* i
switch (emulation_packet_base_get_type_id (p)) {
case 0:
{
- gint _tmp12_;
- EmulationPacketBase* _tmp13_;
- char* _tmp15_;
- EmulationPacketBase* _tmp14_;
- _tmp12_ = 0;
- _tmp13_ = NULL;
- if (emulation_packet0_get_one_reg_wr ((_tmp13_ = p, EMULATION_IS_PACKET0 (_tmp13_) ? ((EmulationPacket0*) _tmp13_) : NULL))) {
- _tmp12_ = 0;
- } else {
- _tmp12_ = 1;
- }
- _tmp15_ = NULL;
- _tmp14_ = NULL;
- g_value_set_string (&(*val), _tmp15_ = gui_cs_list_model_translate_addr (self, emulation_packet0_get_addr ((_tmp14_ = p, EMULATION_IS_PACKET0 (_tmp14_) ? ((EmulationPacket0*) _tmp14_) : NULL)) + ((4 * gui_cs_list_model_dword_index (self, &(*iter))) * _tmp12_)));
- _tmp15_ = (g_free (_tmp15_), NULL);
+ char* _tmp8_;
+ g_value_set_string (val, _tmp8_ = gui_cs_list_model_translate_addr (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (it), (guint) gui_cs_list_model_cs_iter_get_dword (it))));
+ _g_free0 (_tmp8_);
break;
}
case 1:
{
- guint32 _tmp16_;
- char* _tmp19_;
- _tmp16_ = 0U;
- if (gui_cs_list_model_dword_index (self, &(*iter)) == 0) {
- EmulationPacketBase* _tmp17_;
- _tmp17_ = NULL;
- _tmp16_ = emulation_packet1_get_addr1 ((_tmp17_ = p, EMULATION_IS_PACKET1 (_tmp17_) ? ((EmulationPacket1*) _tmp17_) : NULL));
- } else {
- EmulationPacketBase* _tmp18_;
- _tmp18_ = NULL;
- _tmp16_ = emulation_packet1_get_addr2 ((_tmp18_ = p, EMULATION_IS_PACKET1 (_tmp18_) ? ((EmulationPacket1*) _tmp18_) : NULL));
- }
- _tmp19_ = NULL;
- g_value_set_string (&(*val), _tmp19_ = gui_cs_list_model_translate_addr (self, _tmp16_));
- _tmp19_ = (g_free (_tmp19_), NULL);
+ char* _tmp9_;
+ g_value_set_string (val, _tmp9_ = gui_cs_list_model_translate_addr (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (it), (guint) gui_cs_list_model_cs_iter_get_dword (it))));
+ _g_free0 (_tmp9_);
break;
}
case 2:
{
- g_value_set_static_string (&(*val), "");
+ g_value_set_static_string (val, "");
break;
}
case 3:
{
- g_value_set_static_string (&(*val), "TODO");
+ g_value_set_static_string (val, "TODO");
break;
}
}
@@ -1009,20 +928,40 @@ static void gui_cs_list_model_real_get_value (GtkTreeModel* base, GtkTreeIter* i
switch (column) {
case GUI_CS_LIST_MODEL_COLUMNS_NAME:
{
- g_value_set_static_string (&(*val), "HEADER");
+ g_value_set_static_string (val, "HEADER");
break;
}
case GUI_CS_LIST_MODEL_COLUMNS_VALUE:
{
- char* _tmp20_;
- _tmp20_ = NULL;
- g_value_set_string (&(*val), _tmp20_ = g_strdup_printf ("0x%08X", p->header));
- _tmp20_ = (g_free (_tmp20_), NULL);
+ char* _tmp10_;
+ g_value_set_string (val, _tmp10_ = g_strdup_printf ("0x%08X", p->header));
+ _g_free0 (_tmp10_);
break;
}
case GUI_CS_LIST_MODEL_COLUMNS_TARGET:
{
- g_value_set_static_string (&(*val), "");
+ g_value_set_static_string (val, "");
+ break;
+ }
+ }
+ break;
+ }
+ case GUI_CS_LIST_MODEL_ROW_TYPE_VARIANT:
+ {
+ switch (column) {
+ case GUI_CS_LIST_MODEL_COLUMNS_NAME:
+ {
+ g_value_set_static_string (val, gui_cs_list_model_variant_name (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (it), (guint) gui_cs_list_model_cs_iter_get_dword (it)), (guint) gui_cs_list_model_cs_iter_get_variant (it)));
+ break;
+ }
+ case GUI_CS_LIST_MODEL_COLUMNS_VALUE:
+ {
+ g_value_set_static_string (val, "");
+ break;
+ }
+ case GUI_CS_LIST_MODEL_COLUMNS_TARGET:
+ {
+ g_value_set_static_string (val, "");
break;
}
}
@@ -1030,6 +969,25 @@ static void gui_cs_list_model_real_get_value (GtkTreeModel* base, GtkTreeIter* i
}
case GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD:
{
+ switch (column) {
+ case GUI_CS_LIST_MODEL_COLUMNS_NAME:
+ {
+ g_value_set_static_string (val, gui_cs_list_model_bitfield_name (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (it), (guint) gui_cs_list_model_cs_iter_get_dword (it)), (guint) gui_cs_list_model_cs_iter_get_variant (it), (guint) gui_cs_list_model_cs_iter_get_bitfield (it)));
+ break;
+ }
+ case GUI_CS_LIST_MODEL_COLUMNS_VALUE:
+ {
+ char* _tmp11_;
+ g_value_set_string (val, _tmp11_ = g_strdup_printf ("%u", gui_cs_list_model_bitfield_value (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (it), (guint) gui_cs_list_model_cs_iter_get_dword (it)), (guint) gui_cs_list_model_cs_iter_get_variant (it), (guint) gui_cs_list_model_cs_iter_get_bitfield (it), emulation_packet_base_get (p, (guint) (gui_cs_list_model_cs_iter_get_dword (it) - 1)))));
+ _g_free0 (_tmp11_);
+ break;
+ }
+ case GUI_CS_LIST_MODEL_COLUMNS_TARGET:
+ {
+ g_value_set_static_string (val, "");
+ break;
+ }
+ }
break;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD:
@@ -1037,12 +995,12 @@ static void gui_cs_list_model_real_get_value (GtkTreeModel* base, GtkTreeIter* i
switch (column) {
case GUI_CS_LIST_MODEL_COLUMNS_NAME:
{
- g_value_set_static_string (&(*val), gui_cs_list_model_packet_headers[emulation_packet_base_get_type_id (p)][gui_cs_list_model_bitfield_index (self, &(*iter))]);
+ g_value_set_static_string (val, gui_cs_list_model_packet_headers[emulation_packet_base_get_type_id (p)][gui_cs_list_model_cs_iter_get_bitfield (it)]);
break;
}
case GUI_CS_LIST_MODEL_COLUMNS_TARGET:
{
- g_value_set_static_string (&(*val), "");
+ g_value_set_static_string (val, "");
break;
}
case GUI_CS_LIST_MODEL_COLUMNS_VALUE:
@@ -1050,95 +1008,81 @@ static void gui_cs_list_model_real_get_value (GtkTreeModel* base, GtkTreeIter* i
switch (emulation_packet_base_get_type_id (p)) {
case 0:
{
- EmulationPacket0* _tmp22_;
- EmulationPacketBase* _tmp21_;
+ EmulationPacketBase* _tmp12_;
EmulationPacket0* p0;
- _tmp22_ = NULL;
- _tmp21_ = NULL;
- p0 = (_tmp22_ = (_tmp21_ = p, EMULATION_IS_PACKET0 (_tmp21_) ? ((EmulationPacket0*) _tmp21_) : NULL), (_tmp22_ == NULL) ? NULL : g_object_ref (_tmp22_));
- switch (gui_cs_list_model_bitfield_index (self, &(*iter))) {
+ p0 = _g_object_ref0 ((_tmp12_ = p, EMULATION_IS_PACKET0 (_tmp12_) ? ((EmulationPacket0*) _tmp12_) : NULL));
+ switch (gui_cs_list_model_cs_iter_get_bitfield (it)) {
case 0:
{
- char* _tmp23_;
- _tmp23_ = NULL;
- g_value_set_string (&(*val), _tmp23_ = gui_cs_list_model_translate_addr (self, emulation_packet0_get__ADDR (p0)));
- _tmp23_ = (g_free (_tmp23_), NULL);
+ char* _tmp13_;
+ g_value_set_string (val, _tmp13_ = gui_cs_list_model_translate_addr (self, emulation_packet0_get__ADDR (p0)));
+ _g_free0 (_tmp13_);
break;
}
case 1:
{
- char* _tmp24_;
- _tmp24_ = NULL;
- g_value_set_string (&(*val), _tmp24_ = g_strdup_printf ("%u", emulation_packet0_get__ONE_REG_WR (p0)));
- _tmp24_ = (g_free (_tmp24_), NULL);
+ char* _tmp14_;
+ g_value_set_string (val, _tmp14_ = g_strdup_printf ("%u", emulation_packet0_get__ONE_REG_WR (p0)));
+ _g_free0 (_tmp14_);
break;
}
case 2:
{
- char* _tmp25_;
- _tmp25_ = NULL;
- g_value_set_string (&(*val), _tmp25_ = g_strdup_printf ("%u", emulation_packet0_get__COUNT (p0)));
- _tmp25_ = (g_free (_tmp25_), NULL);
+ char* _tmp15_;
+ g_value_set_string (val, _tmp15_ = g_strdup_printf ("%u", emulation_packet0_get__COUNT (p0)));
+ _g_free0 (_tmp15_);
break;
}
case 3:
{
- char* _tmp26_;
- _tmp26_ = NULL;
- g_value_set_string (&(*val), _tmp26_ = g_strdup_printf ("%u", emulation_packet_base_get_type_id (p)));
- _tmp26_ = (g_free (_tmp26_), NULL);
+ char* _tmp16_;
+ g_value_set_string (val, _tmp16_ = g_strdup_printf ("%u", emulation_packet_base_get_type_id (p)));
+ _g_free0 (_tmp16_);
break;
}
}
- (p0 == NULL) ? NULL : (p0 = (g_object_unref (p0), NULL));
+ _g_object_unref0 (p0);
break;
}
case 1:
{
- EmulationPacket1* _tmp28_;
- EmulationPacketBase* _tmp27_;
+ EmulationPacketBase* _tmp17_;
EmulationPacket1* p1;
- _tmp28_ = NULL;
- _tmp27_ = NULL;
- p1 = (_tmp28_ = (_tmp27_ = p, EMULATION_IS_PACKET1 (_tmp27_) ? ((EmulationPacket1*) _tmp27_) : NULL), (_tmp28_ == NULL) ? NULL : g_object_ref (_tmp28_));
- switch (gui_cs_list_model_bitfield_index (self, &(*iter))) {
+ p1 = _g_object_ref0 ((_tmp17_ = p, EMULATION_IS_PACKET1 (_tmp17_) ? ((EmulationPacket1*) _tmp17_) : NULL));
+ switch (gui_cs_list_model_cs_iter_get_bitfield (it)) {
case 0:
{
- char* _tmp29_;
- _tmp29_ = NULL;
- g_value_set_string (&(*val), _tmp29_ = gui_cs_list_model_translate_addr (self, emulation_packet1_get__ADDR1 (p1)));
- _tmp29_ = (g_free (_tmp29_), NULL);
+ char* _tmp18_;
+ g_value_set_string (val, _tmp18_ = gui_cs_list_model_translate_addr (self, emulation_packet1_get__ADDR1 (p1)));
+ _g_free0 (_tmp18_);
break;
}
case 1:
{
- char* _tmp30_;
- _tmp30_ = NULL;
- g_value_set_string (&(*val), _tmp30_ = gui_cs_list_model_translate_addr (self, emulation_packet1_get__ADDR2 (p1)));
- _tmp30_ = (g_free (_tmp30_), NULL);
+ char* _tmp19_;
+ g_value_set_string (val, _tmp19_ = gui_cs_list_model_translate_addr (self, emulation_packet1_get__ADDR2 (p1)));
+ _g_free0 (_tmp19_);
break;
}
case 2:
{
- char* _tmp31_;
- _tmp31_ = NULL;
- g_value_set_string (&(*val), _tmp31_ = g_strdup_printf ("%u", emulation_packet_base_get_type_id (p)));
- _tmp31_ = (g_free (_tmp31_), NULL);
+ char* _tmp20_;
+ g_value_set_string (val, _tmp20_ = g_strdup_printf ("%u", emulation_packet_base_get_type_id (p)));
+ _g_free0 (_tmp20_);
break;
}
}
- (p1 == NULL) ? NULL : (p1 = (g_object_unref (p1), NULL));
+ _g_object_unref0 (p1);
break;
}
case 2:
{
- switch (gui_cs_list_model_bitfield_index (self, &(*iter))) {
+ switch (gui_cs_list_model_cs_iter_get_bitfield (it)) {
case 0:
{
- char* _tmp32_;
- _tmp32_ = NULL;
- g_value_set_string (&(*val), _tmp32_ = g_strdup_printf ("%u", emulation_packet_base_get_type_id (p)));
- _tmp32_ = (g_free (_tmp32_), NULL);
+ char* _tmp21_;
+ g_value_set_string (val, _tmp21_ = g_strdup_printf ("%u", emulation_packet_base_get_type_id (p)));
+ _g_free0 (_tmp21_);
break;
}
}
@@ -1146,39 +1090,33 @@ static void gui_cs_list_model_real_get_value (GtkTreeModel* base, GtkTreeIter* i
}
case 3:
{
- EmulationPacket3* _tmp34_;
- EmulationPacketBase* _tmp33_;
+ EmulationPacketBase* _tmp22_;
EmulationPacket3* p3;
- _tmp34_ = NULL;
- _tmp33_ = NULL;
- p3 = (_tmp34_ = (_tmp33_ = p, EMULATION_IS_PACKET3 (_tmp33_) ? ((EmulationPacket3*) _tmp33_) : NULL), (_tmp34_ == NULL) ? NULL : g_object_ref (_tmp34_));
- switch (gui_cs_list_model_bitfield_index (self, &(*iter))) {
+ p3 = _g_object_ref0 ((_tmp22_ = p, EMULATION_IS_PACKET3 (_tmp22_) ? ((EmulationPacket3*) _tmp22_) : NULL));
+ switch (gui_cs_list_model_cs_iter_get_bitfield (it)) {
case 0:
{
- char* _tmp35_;
- _tmp35_ = NULL;
- g_value_set_string (&(*val), _tmp35_ = g_strdup_printf ("0x%02X", emulation_packet3_get__IT_OPCODE (p3)));
- _tmp35_ = (g_free (_tmp35_), NULL);
+ char* _tmp23_;
+ g_value_set_string (val, _tmp23_ = g_strdup_printf ("0x%02X", emulation_packet3_get__IT_OPCODE (p3)));
+ _g_free0 (_tmp23_);
break;
}
case 1:
{
- char* _tmp36_;
- _tmp36_ = NULL;
- g_value_set_string (&(*val), _tmp36_ = g_strdup_printf ("%u", emulation_packet3_get__COUNT (p3)));
- _tmp36_ = (g_free (_tmp36_), NULL);
+ char* _tmp24_;
+ g_value_set_string (val, _tmp24_ = g_strdup_printf ("%u", emulation_packet3_get__COUNT (p3)));
+ _g_free0 (_tmp24_);
break;
}
case 2:
{
- char* _tmp37_;
- _tmp37_ = NULL;
- g_value_set_string (&(*val), _tmp37_ = g_strdup_printf ("%u", emulation_packet_base_get_type_id (p)));
- _tmp37_ = (g_free (_tmp37_), NULL);
+ char* _tmp25_;
+ g_value_set_string (val, _tmp25_ = g_strdup_printf ("%u", emulation_packet_base_get_type_id (p)));
+ _g_free0 (_tmp25_);
break;
}
}
- (p3 == NULL) ? NULL : (p3 = (g_object_unref (p3), NULL));
+ _g_object_unref0 (p3);
break;
}
}
@@ -1188,57 +1126,130 @@ static void gui_cs_list_model_real_get_value (GtkTreeModel* base, GtkTreeIter* i
break;
}
}
- (p == NULL) ? NULL : (p = (g_object_unref (p), NULL));
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _g_object_unref0 (p);
+}
+
+
+static guint32 gui_cs_list_model_dword_addr (GUICSListModel* self, guint p, guint d) {
+ guint32 result;
+ g_return_val_if_fail (self != NULL, 0U);
+ g_assert (p < self->priv->m_cs->packets_length1);
+ switch (emulation_packet_base_get_type_id (self->priv->m_cs->packets[p])) {
+ case 0:
+ {
+ EmulationPacketBase* _tmp0_;
+ EmulationPacket0* p0;
+ guint _tmp1_ = 0U;
+ p0 = _g_object_ref0 ((_tmp0_ = self->priv->m_cs->packets[p], EMULATION_IS_PACKET0 (_tmp0_) ? ((EmulationPacket0*) _tmp0_) : NULL));
+ if (emulation_packet0_get_one_reg_wr (p0)) {
+ _tmp1_ = (guint) 0;
+ } else {
+ _tmp1_ = 4 * (d - 1);
+ }
+ result = emulation_packet0_get_addr (p0) + _tmp1_;
+ _g_object_unref0 (p0);
+ return result;
+ }
+ case 1:
+ {
+ EmulationPacketBase* _tmp2_;
+ EmulationPacket1* p1;
+ guint32 _tmp3_ = 0U;
+ p1 = _g_object_ref0 ((_tmp2_ = self->priv->m_cs->packets[p], EMULATION_IS_PACKET1 (_tmp2_) ? ((EmulationPacket1*) _tmp2_) : NULL));
+ if (d == 1) {
+ _tmp3_ = emulation_packet1_get_addr1 (p1);
+ } else {
+ _tmp3_ = emulation_packet1_get_addr2 (p1);
+ }
+ result = _tmp3_;
+ _g_object_unref0 (p1);
+ return result;
+ }
+ }
+ result = (guint32) 0;
+ return result;
}
static gboolean gui_cs_list_model_real_iter_next (GtkTreeModel* base, GtkTreeIter* iter) {
GUICSListModel * self;
gboolean result;
- guint p;
+ GUICSListModelCSIter* it;
+ guint32 p;
self = (GUICSListModel*) base;
- p = gui_cs_list_model_get_packet_num (self, &(*iter));
- switch (gui_cs_list_model_get_row_type (self, &(*iter))) {
+ if ((*iter).stamp != self->priv->m_stamp) {
+ result = FALSE;
+ return result;
+ }
+ (*iter).stamp = 0;
+ it = gui_cs_list_model_cs_iter_new (iter);
+ p = gui_cs_list_model_cs_iter_get_packet (it);
+ switch (gui_cs_list_model_cs_iter_get_row_type (it)) {
case GUI_CS_LIST_MODEL_ROW_TYPE_PACKET:
{
p++;
if (p >= self->priv->m_cs->packets_length1) {
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
- gui_cs_list_model_set_packet_num (self, &(*iter), p);
+ gui_cs_list_model_cs_iter_set_packet (it, p);
break;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER:
case GUI_CS_LIST_MODEL_ROW_TYPE_DWORD:
{
- guint d;
- d = gui_cs_list_model_get_dword_num (self, &(*iter)) + 1;
- if (d > (emulation_packet_base_get_length (self->priv->m_cs->packets[p]) + 1)) {
+ guint32 d;
+ d = gui_cs_list_model_cs_iter_get_dword (it) + 1;
+ if (d >= (emulation_packet_base_get_length (self->priv->m_cs->packets[p]) + 1)) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ gui_cs_list_model_cs_iter_set_dword (it, d);
+ break;
+ }
+ case GUI_CS_LIST_MODEL_ROW_TYPE_VARIANT:
+ {
+ guint32 v;
+ v = gui_cs_list_model_cs_iter_get_variant (it) + 1;
+ if (v >= gui_cs_list_model_get_variant_count (self, gui_cs_list_model_dword_addr (self, (guint) p, (guint) gui_cs_list_model_cs_iter_get_dword (it)))) {
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
- gui_cs_list_model_set_dword_num (self, &(*iter), d);
+ gui_cs_list_model_cs_iter_set_variant (it, v);
break;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD:
{
- result = FALSE;
- return result;
+ guint32 b;
+ b = gui_cs_list_model_cs_iter_get_bitfield (it) + 1;
+ if (b >= gui_cs_list_model_get_bitfield_count (self, gui_cs_list_model_dword_addr (self, (guint) p, (guint) gui_cs_list_model_cs_iter_get_dword (it)), (guint) gui_cs_list_model_cs_iter_get_variant (it))) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ gui_cs_list_model_cs_iter_set_bitfield (it, b);
+ break;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD:
{
- guint b;
- b = gui_cs_list_model_get_bitfield_num (self, &(*iter)) + 1;
- if (b > gui_cs_list_model_packet_headers_length[emulation_packet_base_get_type_id (self->priv->m_cs->packets[p])]) {
+ guint32 b;
+ b = gui_cs_list_model_cs_iter_get_bitfield (it) + 1;
+ if (b >= gui_cs_list_model_packet_headers_length[emulation_packet_base_get_type_id (self->priv->m_cs->packets[p])]) {
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
- gui_cs_list_model_set_bitfield_num (self, &(*iter), b);
+ gui_cs_list_model_cs_iter_set_bitfield (it, b);
break;
}
}
+ (*iter).stamp = self->priv->m_stamp;
result = TRUE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
@@ -1246,46 +1257,68 @@ static gboolean gui_cs_list_model_real_iter_next (GtkTreeModel* base, GtkTreeIte
static gboolean gui_cs_list_model_real_iter_children (GtkTreeModel* base, GtkTreeIter* iter, GtkTreeIter* parent) {
GUICSListModel * self;
gboolean result;
+ GUICSListModelCSIter* it;
+ GUICSListModelCSIter* pa;
self = (GUICSListModel*) base;
+ it = gui_cs_list_model_cs_iter_new (iter);
+ (*iter).stamp = 0;
if (parent == NULL) {
if (self->priv->m_cs->packets_length1 == 0) {
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
- gui_cs_list_model_set_iter (self, &(*iter), (guint) 0, (guint) 0, (guint) 0, TRUE);
+ gui_cs_list_model_cs_iter_reset (it);
+ (*iter).stamp = self->priv->m_stamp;
result = TRUE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ if ((*parent).stamp != self->priv->m_stamp) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
- switch (gui_cs_list_model_get_row_type (self, parent)) {
+ pa = gui_cs_list_model_cs_iter_new (parent);
+ gui_cs_list_model_cs_iter_copy (it, pa);
+ switch (gui_cs_list_model_cs_iter_get_row_type (pa)) {
case GUI_CS_LIST_MODEL_ROW_TYPE_PACKET:
{
- gui_cs_list_model_set_iter (self, &(*iter), gui_cs_list_model_get_packet_num (self, parent), (guint) 1, (guint) 0, TRUE);
- result = TRUE;
- return result;
+ gui_cs_list_model_cs_iter_set_dword (it, (guint32) 0);
+ gui_cs_list_model_cs_iter_set_in_dwords (it, TRUE);
+ break;
}
+ case GUI_CS_LIST_MODEL_ROW_TYPE_VARIANT:
case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER:
{
- gui_cs_list_model_set_iter (self, &(*iter), gui_cs_list_model_get_packet_num (self, parent), (guint) 1, (guint) 1, TRUE);
- result = TRUE;
- return result;
+ gui_cs_list_model_cs_iter_set_bitfield (it, (guint32) 0);
+ gui_cs_list_model_cs_iter_set_in_bitfields (it, TRUE);
+ break;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_DWORD:
{
- result = FALSE;
- return result;
- }
- case GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD:
- {
- result = FALSE;
- return result;
+ if (gui_cs_list_model_get_variant_count (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (pa), (guint) gui_cs_list_model_cs_iter_get_dword (pa))) == 0) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _gui_cs_list_model_cs_iter_unref0 (pa);
+ return result;
+ }
+ gui_cs_list_model_cs_iter_set_variant (it, (guint32) 0);
+ gui_cs_list_model_cs_iter_set_in_variants (it, TRUE);
+ break;
}
- case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD:
+ default:
{
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _gui_cs_list_model_cs_iter_unref0 (pa);
return result;
}
}
- result = FALSE;
+ (*iter).stamp = self->priv->m_stamp;
+ result = TRUE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _gui_cs_list_model_cs_iter_unref0 (pa);
return result;
}
@@ -1293,35 +1326,59 @@ static gboolean gui_cs_list_model_real_iter_children (GtkTreeModel* base, GtkTre
static gboolean gui_cs_list_model_real_iter_has_child (GtkTreeModel* base, GtkTreeIter* iter) {
GUICSListModel * self;
gboolean result;
+ GUICSListModelCSIter* it;
self = (GUICSListModel*) base;
- switch (gui_cs_list_model_get_row_type (self, &(*iter))) {
+ if ((*iter).stamp != self->priv->m_stamp) {
+ result = FALSE;
+ return result;
+ }
+ it = gui_cs_list_model_cs_iter_new (iter);
+ switch (gui_cs_list_model_cs_iter_get_row_type (it)) {
case GUI_CS_LIST_MODEL_ROW_TYPE_PACKET:
{
result = TRUE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER:
{
result = TRUE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_DWORD:
{
- result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ if (gui_cs_list_model_get_variant_count (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (it), (guint) gui_cs_list_model_cs_iter_get_dword (it))) == 0) {
+ _tmp0_ = FALSE;
+ } else {
+ _tmp0_ = TRUE;
+ }
+ result = _tmp0_;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ case GUI_CS_LIST_MODEL_ROW_TYPE_VARIANT:
+ {
+ result = TRUE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD:
{
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD:
{
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
}
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
@@ -1329,41 +1386,57 @@ static gboolean gui_cs_list_model_real_iter_has_child (GtkTreeModel* base, GtkTr
static gint gui_cs_list_model_real_iter_n_children (GtkTreeModel* base, GtkTreeIter* iter) {
GUICSListModel * self;
gint result;
- guint p;
+ GUICSListModelCSIter* it;
self = (GUICSListModel*) base;
if (iter == NULL) {
result = self->priv->m_cs->packets_length1;
return result;
}
- p = gui_cs_list_model_get_packet_num (self, iter);
- switch (gui_cs_list_model_get_row_type (self, iter)) {
+ if ((*iter).stamp != self->priv->m_stamp) {
+ result = 0;
+ return result;
+ }
+ it = gui_cs_list_model_cs_iter_new (iter);
+ switch (gui_cs_list_model_cs_iter_get_row_type (it)) {
case GUI_CS_LIST_MODEL_ROW_TYPE_PACKET:
{
- result = ((gint) emulation_packet_base_get_length (self->priv->m_cs->packets[p])) + 1;
+ result = ((gint) emulation_packet_base_get_length (self->priv->m_cs->packets[gui_cs_list_model_cs_iter_get_packet (it)])) + 1;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER:
{
- result = (gint) gui_cs_list_model_packet_headers_length[emulation_packet_base_get_type_id (self->priv->m_cs->packets[p])];
+ result = (gint) gui_cs_list_model_packet_headers_length[emulation_packet_base_get_type_id (self->priv->m_cs->packets[gui_cs_list_model_cs_iter_get_packet (it)])];
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_DWORD:
{
- result = 0;
+ result = (gint) gui_cs_list_model_get_variant_count (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (it), (guint) gui_cs_list_model_cs_iter_get_dword (it)));
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ case GUI_CS_LIST_MODEL_ROW_TYPE_VARIANT:
+ {
+ result = (gint) gui_cs_list_model_get_bitfield_count (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (it), (guint) gui_cs_list_model_cs_iter_get_dword (it)), (guint) gui_cs_list_model_cs_iter_get_variant (it));
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD:
{
result = 0;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD:
{
result = 0;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
}
result = 0;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
@@ -1371,11 +1444,13 @@ static gint gui_cs_list_model_real_iter_n_children (GtkTreeModel* base, GtkTreeI
static gboolean gui_cs_list_model_real_iter_nth_child (GtkTreeModel* base, GtkTreeIter* iter, GtkTreeIter* parent, gint n) {
GUICSListModel * self;
gboolean result;
- guint p;
+ GUICSListModelCSIter* it;
+ GUICSListModelCSIter* pa;
self = (GUICSListModel*) base;
+ it = gui_cs_list_model_cs_iter_new (iter);
+ (*iter).stamp = 0;
if (parent == NULL) {
- gboolean _tmp0_;
- _tmp0_ = FALSE;
+ gboolean _tmp0_ = FALSE;
if (n >= self->priv->m_cs->packets_length1) {
_tmp0_ = TRUE;
} else {
@@ -1383,65 +1458,89 @@ static gboolean gui_cs_list_model_real_iter_nth_child (GtkTreeModel* base, GtkTr
}
if (_tmp0_) {
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
- gui_cs_list_model_set_iter (self, &(*iter), (guint) n, (guint) 0, (guint) 0, TRUE);
+ (*iter).stamp = self->priv->m_stamp;
+ gui_cs_list_model_cs_iter_reset (it);
+ gui_cs_list_model_cs_iter_set_packet (it, (guint32) n);
result = TRUE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ if ((*parent).stamp != self->priv->m_stamp) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ return result;
+ }
+ if (n < 0) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
return result;
}
- p = gui_cs_list_model_get_packet_num (self, parent);
- switch (gui_cs_list_model_get_row_type (self, parent)) {
+ pa = gui_cs_list_model_cs_iter_new (parent);
+ gui_cs_list_model_cs_iter_copy (it, pa);
+ switch (gui_cs_list_model_cs_iter_get_row_type (pa)) {
case GUI_CS_LIST_MODEL_ROW_TYPE_PACKET:
{
- gboolean _tmp1_;
- _tmp1_ = FALSE;
- if (n > emulation_packet_base_get_length (self->priv->m_cs->packets[p])) {
- _tmp1_ = TRUE;
- } else {
- _tmp1_ = n < 0;
- }
- if (_tmp1_) {
+ if (n > emulation_packet_base_get_length (self->priv->m_cs->packets[gui_cs_list_model_cs_iter_get_packet (pa)])) {
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _gui_cs_list_model_cs_iter_unref0 (pa);
return result;
}
- gui_cs_list_model_set_iter (self, &(*iter), p, (guint) (n + 1), (guint) 0, TRUE);
- result = TRUE;
- return result;
+ gui_cs_list_model_cs_iter_set_in_dwords (it, TRUE);
+ gui_cs_list_model_cs_iter_set_dword (it, (guint32) n);
+ break;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER:
{
- gboolean _tmp2_;
- _tmp2_ = FALSE;
- if (n >= gui_cs_list_model_packet_headers_length[emulation_packet_base_get_type_id (self->priv->m_cs->packets[p])]) {
- _tmp2_ = TRUE;
- } else {
- _tmp2_ = n < 0;
- }
- if (_tmp2_) {
+ if (n >= gui_cs_list_model_packet_headers_length[emulation_packet_base_get_type_id (self->priv->m_cs->packets[gui_cs_list_model_cs_iter_get_packet (pa)])]) {
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _gui_cs_list_model_cs_iter_unref0 (pa);
return result;
}
- gui_cs_list_model_set_iter (self, &(*iter), p, (guint) 1, (guint) (n + 1), TRUE);
- result = TRUE;
- return result;
+ gui_cs_list_model_cs_iter_set_in_bitfields (it, TRUE);
+ gui_cs_list_model_cs_iter_set_bitfield (it, (guint32) n);
+ break;
}
case GUI_CS_LIST_MODEL_ROW_TYPE_DWORD:
{
- result = FALSE;
- return result;
+ if (n >= gui_cs_list_model_get_variant_count (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (pa), (guint) gui_cs_list_model_cs_iter_get_dword (pa)))) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _gui_cs_list_model_cs_iter_unref0 (pa);
+ return result;
+ }
+ gui_cs_list_model_cs_iter_set_in_variants (it, TRUE);
+ gui_cs_list_model_cs_iter_set_variant (it, (guint32) n);
+ break;
}
- case GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD:
+ case GUI_CS_LIST_MODEL_ROW_TYPE_VARIANT:
{
- result = FALSE;
- return result;
+ if (n >= gui_cs_list_model_get_bitfield_count (self, gui_cs_list_model_dword_addr (self, (guint) gui_cs_list_model_cs_iter_get_packet (pa), (guint) gui_cs_list_model_cs_iter_get_dword (pa)), (guint) gui_cs_list_model_cs_iter_get_variant (pa))) {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _gui_cs_list_model_cs_iter_unref0 (pa);
+ return result;
+ }
+ gui_cs_list_model_cs_iter_set_in_bitfields (it, TRUE);
+ gui_cs_list_model_cs_iter_set_bitfield (it, (guint32) n);
+ break;
}
- case GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD:
+ default:
{
result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _gui_cs_list_model_cs_iter_unref0 (pa);
return result;
}
}
- result = FALSE;
+ (*iter).stamp = self->priv->m_stamp;
+ result = TRUE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _gui_cs_list_model_cs_iter_unref0 (pa);
return result;
}
@@ -1449,19 +1548,37 @@ static gboolean gui_cs_list_model_real_iter_nth_child (GtkTreeModel* base, GtkTr
static gboolean gui_cs_list_model_real_iter_parent (GtkTreeModel* base, GtkTreeIter* iter, GtkTreeIter* child) {
GUICSListModel * self;
gboolean result;
+ GUICSListModelCSIter* it;
+ GUICSListModelCSIter* ch;
self = (GUICSListModel*) base;
- if (gui_cs_list_model_has_bitfields (self, &(*child))) {
- gui_cs_list_model_set_iter (self, &(*iter), gui_cs_list_model_get_packet_num (self, &(*child)), gui_cs_list_model_get_dword_num (self, &(*child)), (guint) 0, TRUE);
- result = TRUE;
+ (*iter).stamp = 0;
+ if ((*child).stamp != self->priv->m_stamp) {
+ result = FALSE;
return result;
+ }
+ it = gui_cs_list_model_cs_iter_new (iter);
+ ch = gui_cs_list_model_cs_iter_new (child);
+ gui_cs_list_model_cs_iter_copy (it, ch);
+ if (gui_cs_list_model_cs_iter_get_in_bitfields (ch)) {
+ gui_cs_list_model_cs_iter_set_in_bitfields (it, FALSE);
} else {
- if (gui_cs_list_model_has_dwords (self, &(*child))) {
- gui_cs_list_model_set_iter (self, &(*iter), gui_cs_list_model_get_packet_num (self, &(*child)), (guint) 0, (guint) 0, TRUE);
- result = TRUE;
- return result;
+ if (gui_cs_list_model_cs_iter_get_in_variants (ch)) {
+ gui_cs_list_model_cs_iter_set_in_variants (it, FALSE);
+ } else {
+ if (gui_cs_list_model_cs_iter_get_in_dwords (ch)) {
+ gui_cs_list_model_cs_iter_set_in_dwords (it, FALSE);
+ } else {
+ result = FALSE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _gui_cs_list_model_cs_iter_unref0 (ch);
+ return result;
+ }
}
}
- result = FALSE;
+ (*iter).stamp = self->priv->m_stamp;
+ result = TRUE;
+ _gui_cs_list_model_cs_iter_unref0 (it);
+ _gui_cs_list_model_cs_iter_unref0 (ch);
return result;
}
@@ -1480,54 +1597,414 @@ static void gui_cs_list_model_real_unref_node (GtkTreeModel* base, GtkTreeIter*
}
+GUICSListModelCSIter* gui_cs_list_model_cs_iter_construct (GType object_type, GtkTreeIter* iter) {
+ GUICSListModelCSIter* self;
+ self = (GUICSListModelCSIter*) g_type_create_instance (object_type);
+ g_assert (iter != NULL);
+ self->priv->m_iter = (GtkTreeIter*) iter;
+ return self;
+}
+
+
+GUICSListModelCSIter* gui_cs_list_model_cs_iter_new (GtkTreeIter* iter) {
+ return gui_cs_list_model_cs_iter_construct (GUI_CS_LIST_MODEL_TYPE_CS_ITER, iter);
+}
+
+
+static inline guint32 gui_cs_list_model_cs_iter_get_iter_bits (GUICSListModelCSIter* self, guint low, guint high) {
+ guint32 result;
+ guint64 num;
+ g_return_val_if_fail (self != NULL, 0U);
+ num = ((guint64) (*((guint32*) (&(*self->priv->m_iter).user_data)))) | (((guint64) (*((guint32*) (&(*self->priv->m_iter).user_data2)))) << 32);
+ result = (guint32) ((num >> low) & ((((guint64) 1) << ((high - low) + 1)) - 1));
+ return result;
+}
+
+
+static inline void gui_cs_list_model_cs_iter_set_iter_bits (GUICSListModelCSIter* self, guint low, guint high, guint32 val) {
+ guint64 num;
+ guint64 mask;
+ guint32 num32[2] = {0};
+ g_return_if_fail (self != NULL);
+ num = ((guint64) (*((guint32*) (&(*self->priv->m_iter).user_data)))) | (((guint64) (*((guint32*) (&(*self->priv->m_iter).user_data2)))) << 32);
+ mask = ((((guint64) 1) << ((high - low) + 1)) - 1) << low;
+ num = num & (~mask);
+ num = num | ((((guint64) val) << low) & mask);
+ num32[0] = (guint32) num;
+ num32[1] = (guint32) (num >> 32);
+ (*self->priv->m_iter).user_data = *((void**) (&num32[0]));
+ (*self->priv->m_iter).user_data2 = *((void**) (&num32[1]));
+}
+
+
+void gui_cs_list_model_cs_iter_reset (GUICSListModelCSIter* self) {
+ g_return_if_fail (self != NULL);
+ gui_cs_list_model_cs_iter_set_iter_bits (self, (guint) 0, (guint) 31, (guint32) 0);
+ gui_cs_list_model_cs_iter_set_iter_bits (self, (guint) 32, (guint) 51, (guint32) 0);
+}
+
+
+void gui_cs_list_model_cs_iter_copy (GUICSListModelCSIter* self, GUICSListModelCSIter* it) {
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (it != NULL);
+ gui_cs_list_model_cs_iter_set_iter_bits (self, (guint) 0, (guint) 31, gui_cs_list_model_cs_iter_get_iter_bits (it, (guint) 0, (guint) 31));
+ gui_cs_list_model_cs_iter_set_iter_bits (self, (guint) 32, (guint) 51, gui_cs_list_model_cs_iter_get_iter_bits (it, (guint) 32, (guint) 51));
+}
+
+
+guint32 gui_cs_list_model_cs_iter_get_packet (GUICSListModelCSIter* self) {
+ guint32 result;
+ g_return_val_if_fail (self != NULL, 0U);
+ result = gui_cs_list_model_cs_iter_get_iter_bits (self, (guint) 0, (guint) 13);
+ return result;
+}
+
+
+void gui_cs_list_model_cs_iter_set_packet (GUICSListModelCSIter* self, guint32 value) {
+ g_return_if_fail (self != NULL);
+ gui_cs_list_model_cs_iter_set_iter_bits (self, (guint) 0, (guint) 13, value);
+}
+
+
+guint32 gui_cs_list_model_cs_iter_get_dword (GUICSListModelCSIter* self) {
+ guint32 result;
+ g_return_val_if_fail (self != NULL, 0U);
+ result = gui_cs_list_model_cs_iter_get_iter_bits (self, (guint) 15, (guint) 29);
+ return result;
+}
+
+
+void gui_cs_list_model_cs_iter_set_dword (GUICSListModelCSIter* self, guint32 value) {
+ g_return_if_fail (self != NULL);
+ gui_cs_list_model_cs_iter_set_iter_bits (self, (guint) 15, (guint) 29, value);
+}
+
+
+guint32 gui_cs_list_model_cs_iter_get_variant (GUICSListModelCSIter* self) {
+ guint32 result;
+ g_return_val_if_fail (self != NULL, 0U);
+ result = gui_cs_list_model_cs_iter_get_iter_bits (self, (guint) 31, (guint) 45);
+ return result;
+}
+
+
+void gui_cs_list_model_cs_iter_set_variant (GUICSListModelCSIter* self, guint32 value) {
+ g_return_if_fail (self != NULL);
+ gui_cs_list_model_cs_iter_set_iter_bits (self, (guint) 31, (guint) 45, value);
+}
+
+
+guint32 gui_cs_list_model_cs_iter_get_bitfield (GUICSListModelCSIter* self) {
+ guint32 result;
+ g_return_val_if_fail (self != NULL, 0U);
+ result = gui_cs_list_model_cs_iter_get_iter_bits (self, (guint) 47, (guint) 51);
+ return result;
+}
+
+
+void gui_cs_list_model_cs_iter_set_bitfield (GUICSListModelCSIter* self, guint32 value) {
+ g_return_if_fail (self != NULL);
+ gui_cs_list_model_cs_iter_set_iter_bits (self, (guint) 47, (guint) 51, value);
+}
+
+
+gboolean gui_cs_list_model_cs_iter_get_in_dwords (GUICSListModelCSIter* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ if (gui_cs_list_model_cs_iter_get_iter_bits (self, (guint) 14, (guint) 14) == 1) {
+ _tmp0_ = TRUE;
+ } else {
+ _tmp0_ = FALSE;
+ }
+ result = _tmp0_;
+ return result;
+}
+
+
+void gui_cs_list_model_cs_iter_set_in_dwords (GUICSListModelCSIter* self, gboolean value) {
+ gint _tmp1_ = 0;
+ g_return_if_fail (self != NULL);
+ if (value) {
+ _tmp1_ = 1;
+ } else {
+ _tmp1_ = 0;
+ }
+ gui_cs_list_model_cs_iter_set_iter_bits (self, (guint) 14, (guint) 14, (guint32) _tmp1_);
+}
+
+
+gboolean gui_cs_list_model_cs_iter_get_in_variants (GUICSListModelCSIter* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ if (gui_cs_list_model_cs_iter_get_iter_bits (self, (guint) 30, (guint) 30) == 1) {
+ _tmp0_ = TRUE;
+ } else {
+ _tmp0_ = FALSE;
+ }
+ result = _tmp0_;
+ return result;
+}
+
+
+void gui_cs_list_model_cs_iter_set_in_variants (GUICSListModelCSIter* self, gboolean value) {
+ gint _tmp1_ = 0;
+ g_return_if_fail (self != NULL);
+ if (value) {
+ _tmp1_ = 1;
+ } else {
+ _tmp1_ = 0;
+ }
+ gui_cs_list_model_cs_iter_set_iter_bits (self, (guint) 30, (guint) 30, (guint32) _tmp1_);
+}
+
+
+gboolean gui_cs_list_model_cs_iter_get_in_bitfields (GUICSListModelCSIter* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ if (gui_cs_list_model_cs_iter_get_iter_bits (self, (guint) 46, (guint) 46) == 1) {
+ _tmp0_ = TRUE;
+ } else {
+ _tmp0_ = FALSE;
+ }
+ result = _tmp0_;
+ return result;
+}
+
+
+void gui_cs_list_model_cs_iter_set_in_bitfields (GUICSListModelCSIter* self, gboolean value) {
+ gint _tmp1_ = 0;
+ g_return_if_fail (self != NULL);
+ if (value) {
+ _tmp1_ = 1;
+ } else {
+ _tmp1_ = 0;
+ }
+ gui_cs_list_model_cs_iter_set_iter_bits (self, (guint) 46, (guint) 46, (guint32) _tmp1_);
+}
+
+
+gboolean gui_cs_list_model_cs_iter_get_is_header (GUICSListModelCSIter* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+ g_return_val_if_fail (self != NULL, FALSE);
+ if (gui_cs_list_model_cs_iter_get_dword (self) == 0) {
+ _tmp0_ = gui_cs_list_model_cs_iter_get_in_dwords (self);
+ } else {
+ _tmp0_ = FALSE;
+ }
+ result = _tmp0_;
+ return result;
+}
+
+
+GUICSListModelRowType gui_cs_list_model_cs_iter_get_row_type (GUICSListModelCSIter* self) {
+ GUICSListModelRowType result;
+ g_return_val_if_fail (self != NULL, 0);
+ if (gui_cs_list_model_cs_iter_get_in_bitfields (self)) {
+ GUICSListModelRowType _tmp0_ = 0;
+ if (gui_cs_list_model_cs_iter_get_is_header (self)) {
+ _tmp0_ = GUI_CS_LIST_MODEL_ROW_TYPE_HEADER_BITFIELD;
+ } else {
+ _tmp0_ = GUI_CS_LIST_MODEL_ROW_TYPE_BITFIELD;
+ }
+ result = _tmp0_;
+ return result;
+ } else {
+ if (gui_cs_list_model_cs_iter_get_in_variants (self)) {
+ result = GUI_CS_LIST_MODEL_ROW_TYPE_VARIANT;
+ return result;
+ } else {
+ if (gui_cs_list_model_cs_iter_get_in_dwords (self)) {
+ GUICSListModelRowType _tmp1_ = 0;
+ if (gui_cs_list_model_cs_iter_get_is_header (self)) {
+ _tmp1_ = GUI_CS_LIST_MODEL_ROW_TYPE_HEADER;
+ } else {
+ _tmp1_ = GUI_CS_LIST_MODEL_ROW_TYPE_DWORD;
+ }
+ result = _tmp1_;
+ return result;
+ }
+ }
+ }
+ result = GUI_CS_LIST_MODEL_ROW_TYPE_PACKET;
+ return result;
+}
+
+
+static void gui_cs_list_model_value_cs_iter_init (GValue* value) {
+ value->data[0].v_pointer = NULL;
+}
+
+
+static void gui_cs_list_model_value_cs_iter_free_value (GValue* value) {
+ if (value->data[0].v_pointer) {
+ gui_cs_list_model_cs_iter_unref (value->data[0].v_pointer);
+ }
+}
+
+
+static void gui_cs_list_model_value_cs_iter_copy_value (const GValue* src_value, GValue* dest_value) {
+ if (src_value->data[0].v_pointer) {
+ dest_value->data[0].v_pointer = gui_cs_list_model_cs_iter_ref (src_value->data[0].v_pointer);
+ } else {
+ dest_value->data[0].v_pointer = NULL;
+ }
+}
+
+
+static gpointer gui_cs_list_model_value_cs_iter_peek_pointer (const GValue* value) {
+ return value->data[0].v_pointer;
+}
+
+
+static gchar* gui_cs_list_model_value_cs_iter_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ if (collect_values[0].v_pointer) {
+ GUICSListModelCSIter* object;
+ object = collect_values[0].v_pointer;
+ if (object->parent_instance.g_class == NULL) {
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+ }
+ value->data[0].v_pointer = gui_cs_list_model_cs_iter_ref (object);
+ } else {
+ value->data[0].v_pointer = NULL;
+ }
+ return NULL;
+}
+
+
+static gchar* gui_cs_list_model_value_cs_iter_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ GUICSListModelCSIter** object_p;
+ object_p = collect_values[0].v_pointer;
+ if (!object_p) {
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+ }
+ if (!value->data[0].v_pointer) {
+ *object_p = NULL;
+ } else if (collect_flags && G_VALUE_NOCOPY_CONTENTS) {
+ *object_p = value->data[0].v_pointer;
+ } else {
+ *object_p = gui_cs_list_model_cs_iter_ref (value->data[0].v_pointer);
+ }
+ return NULL;
+}
+
+
+GParamSpec* gui_cs_list_model_param_spec_cs_iter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ GUICSListModelParamSpecCSIter* spec;
+ g_return_val_if_fail (g_type_is_a (object_type, GUI_CS_LIST_MODEL_TYPE_CS_ITER), NULL);
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+ G_PARAM_SPEC (spec)->value_type = object_type;
+ return G_PARAM_SPEC (spec);
+}
+
+
+gpointer gui_cs_list_model_value_get_cs_iter (const GValue* value) {
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GUI_CS_LIST_MODEL_TYPE_CS_ITER), NULL);
+ return value->data[0].v_pointer;
+}
+
+
+void gui_cs_list_model_value_set_cs_iter (GValue* value, gpointer v_object) {
+ GUICSListModelCSIter* old;
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GUI_CS_LIST_MODEL_TYPE_CS_ITER));
+ old = value->data[0].v_pointer;
+ if (v_object) {
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GUI_CS_LIST_MODEL_TYPE_CS_ITER));
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+ value->data[0].v_pointer = v_object;
+ gui_cs_list_model_cs_iter_ref (value->data[0].v_pointer);
+ } else {
+ value->data[0].v_pointer = NULL;
+ }
+ if (old) {
+ gui_cs_list_model_cs_iter_unref (old);
+ }
+}
+
+
+static void gui_cs_list_model_cs_iter_class_init (GUICSListModelCSIterClass * klass) {
+ gui_cs_list_model_cs_iter_parent_class = g_type_class_peek_parent (klass);
+ GUI_CS_LIST_MODEL_CS_ITER_CLASS (klass)->finalize = gui_cs_list_model_cs_iter_finalize;
+ g_type_class_add_private (klass, sizeof (GUICSListModelCSIterPrivate));
+}
+
+
+static void gui_cs_list_model_cs_iter_instance_init (GUICSListModelCSIter * self) {
+ self->priv = GUI_CS_LIST_MODEL_CS_ITER_GET_PRIVATE (self);
+ self->ref_count = 1;
+}
+
+
+static void gui_cs_list_model_cs_iter_finalize (GUICSListModelCSIter* obj) {
+ GUICSListModelCSIter * self;
+ self = GUI_CS_LIST_MODEL_CS_ITER (obj);
+}
+
+
+GType gui_cs_list_model_cs_iter_get_type (void) {
+ static GType gui_cs_list_model_cs_iter_type_id = 0;
+ if (gui_cs_list_model_cs_iter_type_id == 0) {
+ static const GTypeValueTable g_define_type_value_table = { gui_cs_list_model_value_cs_iter_init, gui_cs_list_model_value_cs_iter_free_value, gui_cs_list_model_value_cs_iter_copy_value, gui_cs_list_model_value_cs_iter_peek_pointer, "p", gui_cs_list_model_value_cs_iter_collect_value, "p", gui_cs_list_model_value_cs_iter_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (GUICSListModelCSIterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gui_cs_list_model_cs_iter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GUICSListModelCSIter), 0, (GInstanceInitFunc) gui_cs_list_model_cs_iter_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ gui_cs_list_model_cs_iter_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GUICSListModelCSIter", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ }
+ return gui_cs_list_model_cs_iter_type_id;
+}
+
+
+gpointer gui_cs_list_model_cs_iter_ref (gpointer instance) {
+ GUICSListModelCSIter* self;
+ self = instance;
+ g_atomic_int_inc (&self->ref_count);
+ return instance;
+}
+
+
+void gui_cs_list_model_cs_iter_unref (gpointer instance) {
+ GUICSListModelCSIter* self;
+ self = instance;
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+ GUI_CS_LIST_MODEL_CS_ITER_GET_CLASS (self)->finalize (self);
+ g_type_free_instance ((GTypeInstance *) self);
+ }
+}
+
+
static void gui_cs_list_model_class_init (GUICSListModelClass * klass) {
- char** _tmp0_;
- char** _tmp1_;
- char** _tmp2_;
- char** _tmp3_;
- char** _tmp4_;
- char*** _tmp13_;
- char** _tmp12_;
- const char* _tmp11_;
- char** _tmp10_;
- const char* _tmp9_;
+ char** _tmp0_ = NULL;
+ char** _tmp1_ = NULL;
+ char** _tmp2_ = NULL;
+ char** _tmp3_ = NULL;
+ char** _tmp4_ = NULL;
+ char*** _tmp9_ = NULL;
char** _tmp8_;
- const char* _tmp7_;
+ char** _tmp7_;
char** _tmp6_;
- const char* _tmp5_;
- guint* _tmp14_;
+ char** _tmp5_;
+ guint* _tmp10_ = NULL;
gui_cs_list_model_parent_class = g_type_class_peek_parent (klass);
g_type_class_add_private (klass, sizeof (GUICSListModelPrivate));
G_OBJECT_CLASS (klass)->finalize = gui_cs_list_model_finalize;
gui_cs_list_model_packet_strings = (_tmp0_ = g_new0 (char*, 4 + 1), _tmp0_[0] = g_strdup ("packet0"), _tmp0_[1] = g_strdup ("packet1"), _tmp0_[2] = g_strdup ("packet2"), _tmp0_[3] = g_strdup ("packet3"), _tmp0_);
gui_cs_list_model_packet_strings_length1 = 4;
- _tmp0_ = NULL;
gui_cs_list_model_packet0_headers = (_tmp1_ = g_new0 (char*, 4 + 1), _tmp1_[0] = g_strdup ("BASE_INDEX"), _tmp1_[1] = g_strdup ("ONE_REG_WR"), _tmp1_[2] = g_strdup ("COUNT"), _tmp1_[3] = g_strdup ("TYPE"), _tmp1_);
gui_cs_list_model_packet0_headers_length1 = 4;
- _tmp1_ = NULL;
gui_cs_list_model_packet1_headers = (_tmp2_ = g_new0 (char*, 3 + 1), _tmp2_[0] = g_strdup ("REG_INDEX1"), _tmp2_[1] = g_strdup ("REG_INDEX2"), _tmp2_[2] = g_strdup ("TYPE"), _tmp2_);
gui_cs_list_model_packet1_headers_length1 = 3;
- _tmp2_ = NULL;
gui_cs_list_model_packet2_headers = (_tmp3_ = g_new0 (char*, 1 + 1), _tmp3_[0] = g_strdup ("TYPE"), _tmp3_);
gui_cs_list_model_packet2_headers_length1 = 1;
- _tmp3_ = NULL;
gui_cs_list_model_packet3_headers = (_tmp4_ = g_new0 (char*, 3 + 1), _tmp4_[0] = g_strdup ("IT_OPCODE"), _tmp4_[1] = g_strdup ("COUNT"), _tmp4_[2] = g_strdup ("TYPE"), _tmp4_);
gui_cs_list_model_packet3_headers_length1 = 3;
- _tmp4_ = NULL;
- gui_cs_list_model_packet_headers = (_tmp13_ = g_new0 (char**, 4), _tmp13_[0] = (_tmp6_ = gui_cs_list_model_packet0_headers, (_tmp6_ == NULL) ? ((gpointer) _tmp6_) : _vala_array_dup3 (_tmp6_, gui_cs_list_model_packet0_headers_length1)), _tmp13_[1] = (_tmp8_ = gui_cs_list_model_packet1_headers, (_tmp8_ == NULL) ? ((gpointer) _tmp8_) : _vala_array_dup4 (_tmp8_, gui_cs_list_model_packet1_headers_length1)), _tmp13_[2] = (_tmp10_ = gui_cs_list_model_packet2_headers, (_tmp10_ == NULL) ? ((gpointer) _tmp10_) : _vala_array_dup5 (_tmp10_, gui_cs_list_model_packet2_headers_length1)), _tmp13_[3] = (_tmp12_ = gui_cs_list_model_packet3_headers, (_tmp12_ == NULL) ? ((gpointer) _tmp12_) : _vala_array_dup6 (_tmp12_, gui_cs_list_model_packet3_headers_length1)), _tmp13_);
+ gui_cs_list_model_packet_headers = (_tmp9_ = g_new0 (char**, 4), _tmp9_[0] = (_tmp5_ = gui_cs_list_model_packet0_headers, (_tmp5_ == NULL) ? ((gpointer) _tmp5_) : _vala_array_dup3 (_tmp5_, gui_cs_list_model_packet0_headers_length1)), _tmp9_[1] = (_tmp6_ = gui_cs_list_model_packet1_headers, (_tmp6_ == NULL) ? ((gpointer) _tmp6_) : _vala_array_dup4 (_tmp6_, gui_cs_list_model_packet1_headers_length1)), _tmp9_[2] = (_tmp7_ = gui_cs_list_model_packet2_headers, (_tmp7_ == NULL) ? ((gpointer) _tmp7_) : _vala_array_dup5 (_tmp7_, gui_cs_list_model_packet2_headers_length1)), _tmp9_[3] = (_tmp8_ = gui_cs_list_model_packet3_headers, (_tmp8_ == NULL) ? ((gpointer) _tmp8_) : _vala_array_dup6 (_tmp8_, gui_cs_list_model_packet3_headers_length1)), _tmp9_);
gui_cs_list_model_packet_headers_length1 = 4;
- _tmp13_ = NULL;
- _tmp12_ = NULL;
- _tmp11_ = NULL;
- _tmp10_ = NULL;
- _tmp9_ = NULL;
- _tmp8_ = NULL;
- _tmp7_ = NULL;
- _tmp6_ = NULL;
- _tmp5_ = NULL;
- gui_cs_list_model_packet_headers_length = (_tmp14_ = g_new0 (guint, 4), _tmp14_[0] = (guint) 4, _tmp14_[1] = (guint) 3, _tmp14_[2] = (guint) 1, _tmp14_[3] = (guint) 3, _tmp14_);
+ gui_cs_list_model_packet_headers_length = (_tmp10_ = g_new0 (guint, 4), _tmp10_[0] = (guint) 4, _tmp10_[1] = (guint) 3, _tmp10_[2] = (guint) 1, _tmp10_[3] = (guint) 3, _tmp10_);
gui_cs_list_model_packet_headers_length_length1 = 4;
- _tmp14_ = NULL;
}
@@ -1558,8 +2035,8 @@ static void gui_cs_list_model_instance_init (GUICSListModel * self) {
static void gui_cs_list_model_finalize (GObject* obj) {
GUICSListModel * self;
self = GUI_CS_LIST_MODEL (obj);
- (self->priv->m_cs == NULL) ? NULL : (self->priv->m_cs = (g_object_unref (self->priv->m_cs), NULL));
- (self->priv->m_spec == NULL) ? NULL : (self->priv->m_spec = (g_object_unref (self->priv->m_spec), NULL));
+ _g_object_unref0 (self->priv->m_cs);
+ _g_object_unref0 (self->priv->m_spec);
G_OBJECT_CLASS (gui_cs_list_model_parent_class)->finalize (obj);
}
@@ -1599,41 +2076,23 @@ GUICSView* gui_cs_view_construct (GType object_type, EmulationCS* cs, EmulationS
GtkVBox* vbl;
GtkButton* _tmp8_;
GtkButton* _tmp9_;
- GtkTreeView* state_reg_list;
- GtkListStore* _tmp10_;
- GtkScrolledWindow* sreg_sw;
- GtkTreeView* state_raw_list;
- GtkListStore* _tmp11_;
- GtkScrolledWindow* sraw_sw;
- GtkNotebook* nb;
- GtkLabel* _tmp12_;
- GtkLabel* _tmp13_;
- GtkHPaned* paned;
g_return_val_if_fail (cs != NULL, NULL);
g_return_val_if_fail (spec != NULL, NULL);
self = g_object_newv (object_type, 0, NULL);
self->priv->m_pos = (guint) 0;
cs_list = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ());
- _tmp0_ = NULL;
gtk_tree_view_insert_column_with_data_func (cs_list, -1, "", (GtkCellRenderer*) (_tmp0_ = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ())), _gui_cs_view_current_dword_renderer_gtk_tree_cell_data_func, g_object_ref (self), g_object_unref);
- (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL));
- _tmp1_ = NULL;
- _tmp2_ = NULL;
- ec_name = (_tmp2_ = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Name", (GtkCellRenderer*) (_tmp1_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), "text", GUI_CS_LIST_MODEL_COLUMNS_NAME, NULL, NULL)), (_tmp1_ == NULL) ? NULL : (_tmp1_ = (g_object_unref (_tmp1_), NULL)), _tmp2_);
- _tmp3_ = NULL;
- _tmp4_ = NULL;
- ec_value = (_tmp4_ = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Value", (GtkCellRenderer*) (_tmp3_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), "text", GUI_CS_LIST_MODEL_COLUMNS_VALUE, NULL, NULL)), (_tmp3_ == NULL) ? NULL : (_tmp3_ = (g_object_unref (_tmp3_), NULL)), _tmp4_);
- _tmp5_ = NULL;
- _tmp6_ = NULL;
- ec_target = (_tmp6_ = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Target", (GtkCellRenderer*) (_tmp5_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), "text", GUI_CS_LIST_MODEL_COLUMNS_TARGET, NULL, NULL)), (_tmp5_ == NULL) ? NULL : (_tmp5_ = (g_object_unref (_tmp5_), NULL)), _tmp6_);
+ _g_object_unref0 (_tmp0_);
+ ec_name = (_tmp2_ = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Name", (GtkCellRenderer*) (_tmp1_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), "text", GUI_CS_LIST_MODEL_COLUMNS_NAME, NULL, NULL)), _g_object_unref0 (_tmp1_), _tmp2_);
+ ec_value = (_tmp4_ = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Value", (GtkCellRenderer*) (_tmp3_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), "text", GUI_CS_LIST_MODEL_COLUMNS_VALUE, NULL, NULL)), _g_object_unref0 (_tmp3_), _tmp4_);
+ ec_target = (_tmp6_ = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Target", (GtkCellRenderer*) (_tmp5_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), "text", GUI_CS_LIST_MODEL_COLUMNS_TARGET, NULL, NULL)), _g_object_unref0 (_tmp5_), _tmp6_);
gtk_tree_view_insert_column (cs_list, ec_name, -1);
gtk_tree_view_insert_column (cs_list, ec_value, -1);
gtk_tree_view_insert_column (cs_list, ec_target, -1);
gtk_tree_view_column_set_resizable (ec_name, TRUE);
gtk_tree_view_column_set_resizable (ec_value, TRUE);
gtk_tree_view_column_set_resizable (ec_target, TRUE);
- _tmp7_ = NULL;
- gtk_tree_view_set_model (cs_list, (GtkTreeModel*) (self->priv->m_pkg_store = (_tmp7_ = gui_cs_list_model_new (cs, spec), (self->priv->m_pkg_store == NULL) ? NULL : (self->priv->m_pkg_store = (g_object_unref (self->priv->m_pkg_store), NULL)), _tmp7_)));
+ gtk_tree_view_set_model (cs_list, (GtkTreeModel*) (self->priv->m_pkg_store = (_tmp7_ = gui_cs_list_model_new (cs, spec), _g_object_unref0 (self->priv->m_pkg_store), _tmp7_)));
gtk_tree_view_set_expander_column (cs_list, ec_name);
cs_sw = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
gtk_container_add ((GtkContainer*) cs_sw, (GtkWidget*) cs_list);
@@ -1641,54 +2100,18 @@ GUICSView* gui_cs_view_construct (GType object_type, EmulationCS* cs, EmulationS
g_object_set (cs_sw, "hscrollbar-policy", GTK_POLICY_AUTOMATIC, NULL);
g_object_set (cs_sw, "vscrollbar-policy", GTK_POLICY_AUTOMATIC, NULL);
vbl = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 4));
- _tmp8_ = NULL;
- gtk_box_pack_start ((GtkBox*) vbl, (GtkWidget*) (self->priv->m_pkgup = (_tmp8_ = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock ("gtk-go-up")), (self->priv->m_pkgup == NULL) ? NULL : (self->priv->m_pkgup = (g_object_unref (self->priv->m_pkgup), NULL)), _tmp8_)), FALSE, TRUE, (guint) 0);
+ gtk_box_pack_start ((GtkBox*) vbl, (GtkWidget*) (self->priv->m_pkgup = (_tmp8_ = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock ("gtk-go-up")), _g_object_unref0 (self->priv->m_pkgup), _tmp8_)), FALSE, TRUE, (guint) 0);
gtk_box_pack_start ((GtkBox*) vbl, (GtkWidget*) cs_sw, TRUE, TRUE, (guint) 0);
- _tmp9_ = NULL;
- gtk_box_pack_start ((GtkBox*) vbl, (GtkWidget*) (self->priv->m_pkgdown = (_tmp9_ = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock ("gtk-go-down")), (self->priv->m_pkgdown == NULL) ? NULL : (self->priv->m_pkgdown = (g_object_unref (self->priv->m_pkgdown), NULL)), _tmp9_)), FALSE, TRUE, (guint) 0);
- state_reg_list = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ());
- _tmp10_ = NULL;
- gtk_tree_view_set_model (state_reg_list, (GtkTreeModel*) (self->priv->m_reg_store = (_tmp10_ = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_UINT, NULL), (self->priv->m_reg_store == NULL) ? NULL : (self->priv->m_reg_store = (g_object_unref (self->priv->m_reg_store), NULL)), _tmp10_)));
- sreg_sw = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
- gtk_container_add ((GtkContainer*) sreg_sw, (GtkWidget*) state_reg_list);
- gtk_scrolled_window_set_shadow_type (sreg_sw, GTK_SHADOW_ETCHED_IN);
- g_object_set (sreg_sw, "hscrollbar-policy", GTK_POLICY_AUTOMATIC, NULL);
- g_object_set (sreg_sw, "vscrollbar-policy", GTK_POLICY_AUTOMATIC, NULL);
- state_raw_list = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ());
- _tmp11_ = NULL;
- gtk_tree_view_set_model (state_raw_list, (GtkTreeModel*) (self->priv->m_raw_store = (_tmp11_ = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_UINT, NULL), (self->priv->m_raw_store == NULL) ? NULL : (self->priv->m_raw_store = (g_object_unref (self->priv->m_raw_store), NULL)), _tmp11_)));
- sraw_sw = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
- gtk_container_add ((GtkContainer*) sraw_sw, (GtkWidget*) state_raw_list);
- gtk_scrolled_window_set_shadow_type (sraw_sw, GTK_SHADOW_ETCHED_IN);
- g_object_set (sraw_sw, "hscrollbar-policy", GTK_POLICY_AUTOMATIC, NULL);
- g_object_set (sraw_sw, "vscrollbar-policy", GTK_POLICY_AUTOMATIC, NULL);
- nb = g_object_ref_sink ((GtkNotebook*) gtk_notebook_new ());
- _tmp12_ = NULL;
- gtk_notebook_append_page (nb, (GtkWidget*) sreg_sw, (GtkWidget*) (_tmp12_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("Registers"))));
- (_tmp12_ == NULL) ? NULL : (_tmp12_ = (g_object_unref (_tmp12_), NULL));
- _tmp13_ = NULL;
- gtk_notebook_append_page (nb, (GtkWidget*) sraw_sw, (GtkWidget*) (_tmp13_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("Raw"))));
- (_tmp13_ == NULL) ? NULL : (_tmp13_ = (g_object_unref (_tmp13_), NULL));
- gtk_notebook_set_scrollable (nb, TRUE);
- paned = g_object_ref_sink ((GtkHPaned*) gtk_hpaned_new ());
- gtk_paned_add1 ((GtkPaned*) paned, (GtkWidget*) vbl);
- gtk_paned_add2 ((GtkPaned*) paned, (GtkWidget*) nb);
- gtk_paned_set_position ((GtkPaned*) paned, 400);
- gtk_container_add ((GtkContainer*) self, (GtkWidget*) paned);
+ gtk_box_pack_start ((GtkBox*) vbl, (GtkWidget*) (self->priv->m_pkgdown = (_tmp9_ = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock ("gtk-go-down")), _g_object_unref0 (self->priv->m_pkgdown), _tmp9_)), FALSE, TRUE, (guint) 0);
+ gtk_container_add ((GtkContainer*) self, (GtkWidget*) vbl);
gtk_container_set_border_width ((GtkContainer*) self, (guint) 10);
gtk_window_set_default_size ((GtkWindow*) self, 640, 480);
- (cs_list == NULL) ? NULL : (cs_list = (g_object_unref (cs_list), NULL));
- (ec_name == NULL) ? NULL : (ec_name = (g_object_unref (ec_name), NULL));
- (ec_value == NULL) ? NULL : (ec_value = (g_object_unref (ec_value), NULL));
- (ec_target == NULL) ? NULL : (ec_target = (g_object_unref (ec_target), NULL));
- (cs_sw == NULL) ? NULL : (cs_sw = (g_object_unref (cs_sw), NULL));
- (vbl == NULL) ? NULL : (vbl = (g_object_unref (vbl), NULL));
- (state_reg_list == NULL) ? NULL : (state_reg_list = (g_object_unref (state_reg_list), NULL));
- (sreg_sw == NULL) ? NULL : (sreg_sw = (g_object_unref (sreg_sw), NULL));
- (state_raw_list == NULL) ? NULL : (state_raw_list = (g_object_unref (state_raw_list), NULL));
- (sraw_sw == NULL) ? NULL : (sraw_sw = (g_object_unref (sraw_sw), NULL));
- (nb == NULL) ? NULL : (nb = (g_object_unref (nb), NULL));
- (paned == NULL) ? NULL : (paned = (g_object_unref (paned), NULL));
+ _g_object_unref0 (cs_list);
+ _g_object_unref0 (ec_name);
+ _g_object_unref0 (ec_value);
+ _g_object_unref0 (ec_target);
+ _g_object_unref0 (cs_sw);
+ _g_object_unref0 (vbl);
return self;
}
@@ -1699,21 +2122,10 @@ GUICSView* gui_cs_view_new (EmulationCS* cs, EmulationSpec* spec) {
static void gui_cs_view_current_dword_renderer (GUICSView* self, GtkTreeViewColumn* tree_column, GtkCellRenderer* cell, GtkTreeModel* model, GtkTreeIter* iter) {
- GtkTreeModel* _tmp0_;
g_return_if_fail (self != NULL);
g_return_if_fail (tree_column != NULL);
g_return_if_fail (cell != NULL);
g_return_if_fail (model != NULL);
- _tmp0_ = NULL;
- if (self->priv->m_pos == gui_cs_list_model_get_packet_num ((_tmp0_ = model, GUI_IS_CS_LIST_MODEL (_tmp0_) ? ((GUICSListModel*) _tmp0_) : NULL), &(*iter))) {
- GtkCellRenderer* _tmp1_;
- _tmp1_ = NULL;
- g_object_set ((_tmp1_ = cell, GTK_IS_CELL_RENDERER_PIXBUF (_tmp1_) ? ((GtkCellRendererPixbuf*) _tmp1_) : NULL), "stock-id", "gtk-media-record", NULL);
- } else {
- GtkCellRenderer* _tmp2_;
- _tmp2_ = NULL;
- g_object_set ((_tmp2_ = cell, GTK_IS_CELL_RENDERER_PIXBUF (_tmp2_) ? ((GtkCellRendererPixbuf*) _tmp2_) : NULL), "stock-id", "", NULL);
- }
}
@@ -1732,11 +2144,11 @@ static void gui_cs_view_instance_init (GUICSView * self) {
static void gui_cs_view_finalize (GObject* obj) {
GUICSView * self;
self = GUI_CS_VIEW (obj);
- (self->priv->m_pkgup == NULL) ? NULL : (self->priv->m_pkgup = (g_object_unref (self->priv->m_pkgup), NULL));
- (self->priv->m_pkgdown == NULL) ? NULL : (self->priv->m_pkgdown = (g_object_unref (self->priv->m_pkgdown), NULL));
- (self->priv->m_pkg_store == NULL) ? NULL : (self->priv->m_pkg_store = (g_object_unref (self->priv->m_pkg_store), NULL));
- (self->priv->m_reg_store == NULL) ? NULL : (self->priv->m_reg_store = (g_object_unref (self->priv->m_reg_store), NULL));
- (self->priv->m_raw_store == NULL) ? NULL : (self->priv->m_raw_store = (g_object_unref (self->priv->m_raw_store), NULL));
+ _g_object_unref0 (self->priv->m_pkgup);
+ _g_object_unref0 (self->priv->m_pkgdown);
+ _g_object_unref0 (self->priv->m_pkg_store);
+ _g_object_unref0 (self->priv->m_reg_store);
+ _g_object_unref0 (self->priv->m_raw_store);
G_OBJECT_CLASS (gui_cs_view_parent_class)->finalize (obj);
}
diff --git a/src/csview.vala b/src/csview.vala
index 0a2cc24..0e07a1e 100644
--- a/src/csview.vala
+++ b/src/csview.vala
@@ -18,6 +18,7 @@ namespace GUI
PACKET = 0,
HEADER,
DWORD,
+ VARIANT,
BITFIELD,
HEADER_BITFIELD
}
@@ -60,31 +61,125 @@ namespace GUI
};
private static uint[] packet_headers_length = { 4, 3, 1, 3 };
-
- public inline uint get_packet_num(TreeIter iter) { return *((uint*)(&iter.user_data)); }
- private inline uint get_dword_num(TreeIter iter) { return *((uint*)(&iter.user_data2)); }
- private inline uint get_bitfield_num(TreeIter iter) { return *((uint*)(&iter.user_data3)); }
-
- private inline void set_packet_num(ref TreeIter iter, uint n) { iter.user_data = *((void**)(&n)); }
- private inline void set_dword_num(ref TreeIter iter, uint n) { iter.user_data2 = *((void**)(&n)); }
- private inline void set_bitfield_num(ref TreeIter iter, uint n) { iter.user_data3 = *((void**)(&n)); }
-
- /* for dwords, 0 means no dwords, 1 means just the header, and 2+ means header and packets */
- /* for bitfields, 0 means no bitfields, 1+ means bitfields */
- private inline bool is_header(TreeIter iter) { return get_dword_num(iter) == 1; }
- private inline bool has_dwords(TreeIter iter) { return get_dword_num(iter) >= 1; }
- private inline bool has_bitfields(TreeIter iter) { return get_bitfield_num(iter) >= 1; }
-
- private inline uint dword_index(TreeIter iter) { return get_dword_num(iter) - 2; }
- private inline uint bitfield_index(TreeIter iter) { return get_bitfield_num(iter) - 1; }
-
- private inline void set_iter(ref TreeIter iter, uint p, uint d, uint b, bool stamp = true)
+ public class CSIter
{
- set_packet_num(ref iter, p);
- set_dword_num(ref iter, d);
- set_bitfield_num(ref iter, b);
- iter.stamp = (stamp) ? m_stamp : 0;
+ private TreeIter *m_iter;
+
+ public CSIter(TreeIter? iter)
+ {
+ assert(iter != null);
+ m_iter = (TreeIter *)iter;
+ }
+
+ /* TreeIters contain 3 void* fields, which means we can partition
+ * them into enough space to store our CS stuff. We need:
+ * iter.user_data iter.user_data2 iter.user_data3
+ * |--------------------------------|--------------------------------|--------------------------------|
+ * |------------|x|-------------|x| -------------|x|---|
+ * packet (14) DWORD (15) Va riant (15) Bitfield (5)
+ * 14 + 1 + 15 + 1 + 15 + 1 + 5 = 53
+ * Meaning we need 50 bits (and this will never run on something below 32bit addrs)
+ * X denotes a boolean to indicate whether or not a level is reached
+ *
+ * Packets [0;13]:
+ * We can have a max of 64KB in DWORDs, which equals 16384. We have a min index of 0 and a max of 16383.
+ * DWORDs [15;29]:
+ * Same limits as packets. However we have a header DWORD too so we need an extra bit.
+ * Variant [31;45]:
+ * Sometimes we need to display variations when we don't know with certainty what the register points to.
+ * We can have a ton of different variations, but we assume 15 bits is enough.
+ * Bitfields [47;51]:
+ * Each DWORD has a max of 32 bitfields, and a minimum of 1, so we need 5 bits.
+ */
+
+ /* we really never want to handle values larger than 32 bit */
+ private inline uint32 get_iter_bits(uint low, uint high)
+ {
+ /* For now, we utilize assume only 32 bits per pointer and we
+ * need no more. We also don't need more than 64 bits, so ease
+ * up the whole ordeal */
+ uint64 num = (uint64)(*((uint32*)(&m_iter->user_data))) |
+ ((uint64)(*((uint32*)(&m_iter->user_data2))) << 32);
+ //stdout.printf("get_iter_bits(%u, %u) = %u (%016llX)\n", low, high, (uint32)((num >> low) & (((uint64)1 << (high-low+1))-1)), num);
+ return (uint32)((num >> low) & (((uint64)1 << (high-low+1))-1));
+ }
+
+ private inline void set_iter_bits(uint low, uint high, uint32 val)
+ {
+ uint64 num = (uint64)(*((uint32*)(&m_iter->user_data))) |
+ ((uint64)(*((uint32*)(&m_iter->user_data2))) << 32);
+
+ uint64 mask = (((uint64)1 << (high-low+1))-1) << low;
+ num &= ~mask;
+ num |= ((uint64)val << low) & mask;
+
+ uint32 num32[2];
+ num32[0] = (uint32)num;
+ num32[1] = (uint32)(num >> 32);
+ m_iter->user_data = *((void**)(&num32[0]));
+ m_iter->user_data2 = *((void**)(&num32[1]));
+ //stdout.printf("setting [%u;%u] = %u | got %u @ %016llX\n", low, high, val, get_iter_bits(low, high), mask);
+ }
+
+ public uint32 packet {
+ get { return get_iter_bits(0, 13); }
+ set { set_iter_bits(0, 13, value); }
+ }
+ public uint32 dword {
+ get { return get_iter_bits(15, 29); }
+ set { set_iter_bits(15, 29, value); }
+ }
+ public uint32 variant {
+ get { return get_iter_bits(31, 45); }
+ set { set_iter_bits(31, 45, value); }
+ }
+ public uint32 bitfield {
+ get { return get_iter_bits(47, 51); }
+ set { set_iter_bits(47, 51, value); }
+ }
+
+ public bool in_dwords {
+ get { return (get_iter_bits(14, 14) == 1) ? true : false; }
+ set { set_iter_bits(14, 14, value ? 1 : 0); }
+ }
+ public bool in_variants {
+ get { return (get_iter_bits(30, 30) == 1) ? true : false; }
+ set { set_iter_bits(30, 30, value ? 1 : 0); }
+ }
+ public bool in_bitfields {
+ get { return (get_iter_bits(46, 46) == 1) ? true : false; }
+ set { set_iter_bits(46, 46, value ? 1 : 0); }
+ }
+ public bool is_header {
+ get { return dword == 0 && in_dwords; }
+ }
+
+ public RowType row_type {
+ get {
+ if (in_bitfields) {
+ return is_header ? RowType.HEADER_BITFIELD : RowType.BITFIELD;
+ } else if (in_variants) {
+ return RowType.VARIANT;
+ } else if (in_dwords) {
+ return is_header ? RowType.HEADER : RowType.DWORD;
+ }
+
+ return RowType.PACKET;
+ }
+ }
+
+ public void reset()
+ {
+ set_iter_bits(0, 31, 0);
+ set_iter_bits(32, 51, 0);
+ }
+
+ public void copy(CSIter it)
+ {
+ set_iter_bits(0, 31, it.get_iter_bits(0, 31));
+ set_iter_bits(32, 51, it.get_iter_bits(32, 51));
+ }
}
private CS m_cs;
@@ -97,127 +192,117 @@ namespace GUI
m_spec = spec;
m_stamp = 19449216;
}
-
- public RowType get_row_type(TreeIter iter)
- {
- if (has_bitfields(iter)) {
- return is_header(iter) ? RowType.HEADER_BITFIELD : RowType.BITFIELD;
- } else if (has_dwords(iter)) {
- return is_header(iter) ? RowType.HEADER : RowType.DWORD;
- }
-
- return RowType.PACKET;
- }
-
+
public TreeModelFlags get_flags()
{
return TreeModelFlags.ITERS_PERSIST;
}
-
+
public int get_n_columns()
{
return Columns.COUNT;
}
-
+
public Type get_column_type(int i)
{
return typeof(string);
}
+
+ private uint get_variant_count(uint32 addr)
+ {
+ var regs = m_spec.translate_addr((uint)addr);
+ return regs == null ? 0 : regs.length;
+ }
+ private uint get_bitfield_count(uint32 addr, uint variant)
+ {
+ var regs = m_spec.translate_addr((uint)addr);
+ assert(regs != null);
+ assert(variant < regs.length);
+ return (regs[variant].info.length == 0) ? 1 : regs[variant].info.length;
+ }
public bool get_iter(out TreeIter iter, TreePath path)
{
var depth = path.get_depth();
- assert(depth <= 3 && depth >= 1);
+ assert(depth <= 4 && depth >= 1);
+
+ CSIter it = new CSIter(iter);
+ it.reset();
int *indices = path.get_indices();
-
if (indices[0] >= m_cs.packets.length || indices[0] < 0) { return false; }
- set_iter(ref iter, indices[0], 0, 0, false);
+ it.packet = indices[0];
if (depth >= 2) {
- if (indices[1] > m_cs.packets[indices[0]].length || indices[1] < 0) { return false; }
- set_dword_num(ref iter, indices[1]+1);
+ if (indices[1] > m_cs.packets[it.packet].length || indices[1] < 0) { return false; }
+ it.dword = indices[1];
+ it.in_dwords = true;
}
if (depth >= 3) {
if (indices[2] < 0) { return false; }
- if (indices[1] == 0) {
- /* Header */
- if (indices[2] >= packet_headers_length[m_cs.packets[indices[0]].type_id]) { return false; }
+ if (it.dword == 0) {
+ /* Header bitfield */
+ if (indices[2] >= packet_headers_length[m_cs.packets[it.packet].type_id]) { return false; }
+ if (depth > 3) { return false; }
+ it.bitfield = indices[2];
+ it.in_bitfields = true;
} else {
- /* XXX: DWORD */
- return false;
+ /* Variant */
+ uint32 addr = 0;
+ switch (m_cs.packets[it.packet].type_id) {
+ case 0:
+ Packet0 p0 = m_cs.packets[it.packet] as Packet0;
+ addr = p0.addr;
+ break;
+
+ case 1:
+ Packet1 p1 = m_cs.packets[it.packet] as Packet1;
+ addr = (it.dword == 1) ? p1.addr1 : p1.addr2; // 0 = header
+ break;
+
+ case 2:
+ return false;
+
+ case 3: /* TODO */
+ return false;
+ }
+
+ if (indices[2] < 0) { return false; }
+ if (indices[2] >= get_variant_count(addr)) { return false; }
+ it.variant = indices[2];
+ it.in_variants = true;
+
+ if (depth == 4) {
+ if (indices[3] < 0) { return false; }
+ if (indices[3] >= get_bitfield_count(addr, it.variant)) { return false; }
+ it.bitfield = indices[3];
+ it.in_bitfields = true;
+ }
}
- set_bitfield_num(ref iter, indices[2]+1);
}
iter.stamp = m_stamp;
-
return true;
}
public TreePath get_path(TreeIter iter)
{
var path = new TreePath();
+ CSIter it = new CSIter(iter);
- path.append_index((int)get_packet_num(iter));
- if (has_dwords(iter)) { path.append_index((int)get_dword_num(iter) - 1); }
- if (has_bitfields(iter)) { path.append_index((int)get_bitfield_num(iter) - 1); }
+ path.append_index((int)it.packet);
+ if (it.in_dwords) { path.append_index((int)it.dword); }
+ if (it.in_bitfields) {
+ if (it.in_variants) { path.append_index((int)it.variant); }
+ path.append_index((int)it.bitfield);
+ }
return path;
}
public uint32 get_numeric_value(TreeIter iter)
{
- PacketBase p = m_cs.packets[get_packet_num(iter)];
- switch (get_row_type(iter)) {
- case RowType.PACKET: return p.header;
- case RowType.DWORD: return p[dword_index(iter)];
- case RowType.HEADER: return p.header;
-
- case RowType.BITFIELD:
- /* TODO */
- break;
-
- case RowType.HEADER_BITFIELD:
- switch (p.type_id) {
- case 0:
- Packet0 p0 = p as Packet0;
- switch (bitfield_index(iter)) {
- case 0: return p0._ADDR;
- case 1: return p0._ONE_REG_WR;
- case 2: return p0._COUNT;
- case 3: return p.type_id;
- }
- break;
-
- case 1:
- Packet1 p1 = p as Packet1;
- switch (bitfield_index(iter)) {
- case 0: return p1._ADDR1;
- case 1: return p1._ADDR2;
- case 2: return p.type_id;
- }
- break;
-
- case 2:
- switch (bitfield_index(iter)) {
- case 0: return p.type_id;
- }
- break;
-
- case 3:
- Packet3 p3 = p as Packet3;
- switch (bitfield_index(iter)) {
- case 0: return p3._IT_OPCODE;
- case 1: return p3._COUNT;
- case 2: return p.type_id;
- }
- break;
- }
- break;
- }
-
return 0;
}
@@ -225,23 +310,59 @@ namespace GUI
{
var regs = m_spec.translate_addr((uint)addr);
if (regs == null) { return addr.to_string("0x%04X"); }
- return regs[0].info.name;
+ return (regs.length > 1) ? "Multiple" : regs[0].info.name;
+ }
+
+ private weak string variant_name(uint32 addr, uint variant)
+ {
+ var regs = m_spec.translate_addr((uint)addr);
+ assert(regs != null);
+ assert(variant < regs.length);
+ return regs[variant].info.name;
+ }
+
+ private weak string bitfield_name(uint32 addr, uint variant, uint bitfield)
+ {
+ var regs = m_spec.translate_addr((uint)addr);
+ assert(regs != null);
+ assert(variant < regs.length);
+ if (regs[variant].info.length > 0) {
+ assert(bitfield < regs[variant].info.length);
+ return regs[variant].info[bitfield].name;
+ }
+ return "DATA_REGISTER";
+ }
+
+ private uint32 bitfield_value(uint32 addr, uint variant, uint bitfield, uint32 dword)
+ {
+ var regs = m_spec.translate_addr((uint)addr);
+ assert(regs != null);
+ assert(variant < regs.length);
+ uint high = 31, low = 0;
+ if (regs[variant].info.length > 0) {
+ assert(bitfield < regs[variant].info.length);
+ high = regs[variant].info[bitfield].high;
+ low = regs[variant].info[bitfield].low;
+ }
+ return (dword >> low) & ((1 << (high-low+1))-1);
}
public void get_value(TreeIter iter, int column, out Value val)
{
- PacketBase p = m_cs.packets[get_packet_num(iter)];
+ if (iter.stamp != m_stamp) { return; }
+ CSIter it = new CSIter(iter);
+ PacketBase p = m_cs.packets[it.packet];
val.init(typeof(string));
- switch (get_row_type(iter)) {
+ switch (it.row_type) {
case RowType.PACKET:
switch (column) {
case Columns.NAME: val.set_static_string(packet_strings[p.type_id]); break;
case Columns.VALUE: val.set_string(p.header.to_string("0x%08X")); break;
case Columns.TARGET:
switch (p.type_id) {
- case 0: val.set_string(translate_addr((p as Packet0).addr)); break;
- case 1: val.set_string(translate_addr((p as Packet1).addr1) + " | " + translate_addr((p as Packet1).addr2)); break;
+ case 0: val.set_string(translate_addr(dword_addr(it.packet, 1))); break;
+ case 1: val.set_string(translate_addr(dword_addr(it.packet, 1)) + " | " + translate_addr(dword_addr(it.packet, 2))); break;
case 2: val.set_static_string(""); break;
case 3: val.set_static_string("TODO"); break;
}
@@ -251,12 +372,12 @@ namespace GUI
case RowType.DWORD:
switch (column) {
- case Columns.NAME: val.set_string(dword_index(iter).to_string("DWORD%u")); break;
- case Columns.VALUE: val.set_string(p[dword_index(iter)].to_string("0x%08X")); break;
+ case Columns.NAME: val.set_string((it.dword-1).to_string("DWORD%u")); break;
+ case Columns.VALUE: val.set_string(p[it.dword-1].to_string("0x%08X")); break;
case Columns.TARGET:
switch (p.type_id) {
- case 0: val.set_string(translate_addr((p as Packet0).addr + 4*dword_index(iter)*((p as Packet0).one_reg_wr ? 0 : 1))); break;
- case 1: val.set_string(translate_addr((dword_index(iter) == 0) ? (p as Packet1).addr1 : (p as Packet1).addr2)); break;
+ case 0: val.set_string(translate_addr(dword_addr(it.packet, it.dword))); break;
+ case 1: val.set_string(translate_addr(dword_addr(it.packet, it.dword))); break;
case 2: val.set_static_string(""); break;
case 3: val.set_static_string("TODO"); break;
}
@@ -271,20 +392,32 @@ namespace GUI
case Columns.TARGET: val.set_static_string(""); break;
}
break;
-
+
+ case RowType.VARIANT:
+ switch (column) {
+ case Columns.NAME: val.set_static_string(variant_name(dword_addr(it.packet, it.dword), it.variant)); break;
+ case Columns.VALUE: val.set_static_string(""); break;
+ case Columns.TARGET: val.set_static_string(""); break;
+ }
+ break;
+
case RowType.BITFIELD:
- /* TODO */
+ switch (column) {
+ case Columns.NAME: val.set_static_string(bitfield_name(dword_addr(it.packet, it.dword), it.variant, it.bitfield)); break;
+ case Columns.VALUE: val.set_string(bitfield_value(dword_addr(it.packet, it.dword), it.variant, it.bitfield, p[it.dword-1]).to_string()); break;
+ case Columns.TARGET: val.set_static_string(""); break;
+ }
break;
case RowType.HEADER_BITFIELD:
switch (column) {
- case Columns.NAME: val.set_static_string(packet_headers[p.type_id][bitfield_index(iter)]); break;
+ case Columns.NAME: val.set_static_string(packet_headers[p.type_id][it.bitfield]); break;
case Columns.TARGET: val.set_static_string(""); break;
case Columns.VALUE:
switch (p.type_id) {
case 0:
Packet0 p0 = p as Packet0;
- switch (bitfield_index(iter)) {
+ switch (it.bitfield) {
case 0: val.set_string(translate_addr(p0._ADDR)); break;
case 1: val.set_string(p0._ONE_REG_WR.to_string()); break;
case 2: val.set_string(p0._COUNT.to_string()); break;
@@ -293,20 +426,20 @@ namespace GUI
break;
case 1:
Packet1 p1 = p as Packet1;
- switch (bitfield_index(iter)) {
+ switch (it.bitfield) {
case 0: val.set_string(translate_addr(p1._ADDR1)); break;
case 1: val.set_string(translate_addr(p1._ADDR2)); break;
case 2: val.set_string(p.type_id.to_string()); break;
}
break;
case 2:
- switch (bitfield_index(iter)) {
+ switch (it.bitfield) {
case 0: val.set_string(p.type_id.to_string()); break;
}
break;
case 3:
Packet3 p3 = p as Packet3;
- switch (bitfield_index(iter)) {
+ switch (it.bitfield) {
case 0: val.set_string(p3._IT_OPCODE.to_string("0x%02X")); break; /* TODO: resolve opcode */
case 1: val.set_string(p3._COUNT.to_string()); break;
case 2: val.set_string(p.type_id.to_string()); break;
@@ -319,68 +452,118 @@ namespace GUI
}
}
+ private uint32 dword_addr(uint p, uint d)
+ {
+ assert(p < m_cs.packets.length);
+ switch (m_cs.packets[p].type_id) {
+ case 0:
+ Packet0 p0 = m_cs.packets[p] as Packet0;
+ return p0.addr + ((p0.one_reg_wr) ? 0 : 4*(d-1));
+ case 1:
+ Packet1 p1 = m_cs.packets[p] as Packet1;
+ return (d == 1) ? p1.addr1 : p1.addr2;
+ }
+ return 0;
+ }
+
public bool iter_next(ref TreeIter iter)
{
- var p = get_packet_num(iter);
- switch (get_row_type(iter)) {
+ if (iter.stamp != m_stamp) { return false; }
+ iter.stamp = 0;
+
+ CSIter it = new CSIter(iter);
+ var p = it.packet;
+ switch (it.row_type) {
case RowType.PACKET:
p++;
if (p >= m_cs.packets.length) { return false; }
- set_packet_num(ref iter, p);
+ it.packet = p;
break;
case RowType.HEADER:
case RowType.DWORD:
- var d = get_dword_num(iter)+1;
- if (d > m_cs.packets[p].length+1) { return false; }
- set_dword_num(ref iter, d);
+ var d = it.dword+1;
+ if (d >= m_cs.packets[p].length+1) { return false; }
+ it.dword = d;
+ break;
+
+ case RowType.VARIANT:
+ var v = it.variant+1;
+ if (v >= get_variant_count(dword_addr(p, it.dword))) { return false; }
+ it.variant = v;
break;
case RowType.BITFIELD:
- /* TODO */
- return false;
+ var b = it.bitfield+1;
+ if (b >= get_bitfield_count(dword_addr(p, it.dword), it.variant)) { return false; }
+ it.bitfield = b;
+ break;
case RowType.HEADER_BITFIELD:
- var b = get_bitfield_num(iter)+1;
- if (b > packet_headers_length[m_cs.packets[p].type_id]) { return false; }
- set_bitfield_num(ref iter, b);
+ var b = it.bitfield+1;
+ if (b >= packet_headers_length[m_cs.packets[p].type_id]) { return false; }
+ it.bitfield = b;
break;
}
+ iter.stamp = m_stamp;
return true;
}
public bool iter_children(out TreeIter iter, TreeIter? parent)
{
+ CSIter it = new CSIter(iter);
+ iter.stamp = 0;
+
if (parent == null) {
if (m_cs.packets.length == 0) {
return false;
}
-
- set_iter(ref iter, 0, 0, 0);
+ it.reset();
+ iter.stamp = m_stamp;
return true;
}
-
- switch (get_row_type(parent)) {
- case RowType.PACKET: set_iter(ref iter, get_packet_num(parent), 1, 0); return true;
- case RowType.HEADER: set_iter(ref iter, get_packet_num(parent), 1, 1); return true;
+ if (parent.stamp != m_stamp) { return false; }
+
+ CSIter pa = new CSIter(parent);
+ it.copy(pa);
+ switch (pa.row_type) {
+ case RowType.PACKET:
+ it.dword = 0;
+ it.in_dwords = true;
+ break;
+
+ case RowType.VARIANT:
+ case RowType.HEADER:
+ it.bitfield = 0;
+ it.in_bitfields = true;
+ break;
+
case RowType.DWORD:
- /* TODO */
- return false;
+ if (get_variant_count(dword_addr(pa.packet, pa.dword)) == 0) { return false; }
+ it.variant = 0;
+ it.in_variants = true;
+ break;
- case RowType.BITFIELD: return false;
- case RowType.HEADER_BITFIELD: return false;
+ case RowType.BITFIELD:
+ case RowType.HEADER_BITFIELD:
+ default:
+ return false;
}
- return false;
+ iter.stamp = m_stamp;
+ return true;
}
public bool iter_has_child(TreeIter iter)
{
- switch (get_row_type(iter)) {
+ if (iter.stamp != m_stamp) { return false; }
+ CSIter it = new CSIter(iter);
+ switch (it.row_type) {
case RowType.PACKET: return true;
case RowType.HEADER: return true;
- case RowType.DWORD: return false; /* TODO */
+ case RowType.DWORD: return (get_variant_count(dword_addr(it.packet, it.dword)) == 0) ? false : true;
+ case RowType.VARIANT: return true;
case RowType.BITFIELD: return false;
case RowType.HEADER_BITFIELD: return false;
}
@@ -394,11 +577,13 @@ namespace GUI
return m_cs.packets.length;
}
- var p = get_packet_num(iter);
- switch (get_row_type(iter)) {
- case RowType.PACKET: return (int)m_cs.packets[p].length+1;
- case RowType.HEADER: return (int)packet_headers_length[m_cs.packets[p].type_id];
- case RowType.DWORD: return 0; /* TODO */
+ if (iter.stamp != m_stamp) { return 0; }
+ CSIter it = new CSIter(iter);
+ switch (it.row_type) {
+ case RowType.PACKET: return (int)m_cs.packets[it.packet].length+1;
+ case RowType.HEADER: return (int)packet_headers_length[m_cs.packets[it.packet].type_id];
+ case RowType.DWORD: return (int)get_variant_count(dword_addr(it.packet, it.dword));
+ case RowType.VARIANT: return (int)get_bitfield_count(dword_addr(it.packet, it.dword), it.variant);
case RowType.BITFIELD: return 0;
case RowType.HEADER_BITFIELD: return 0;
}
@@ -408,46 +593,78 @@ namespace GUI
public bool iter_nth_child(out TreeIter iter, TreeIter? parent, int n)
{
+ CSIter it = new CSIter(iter);
+ iter.stamp = 0;
+
if (parent == null) {
if (n >= m_cs.packets.length || n < 0) {
return false;
}
-
- set_iter(ref iter, n, 0, 0);
+ iter.stamp = m_stamp;
+ it.reset();
+ it.packet = n;
return true;
}
+ if (parent.stamp != m_stamp) { return false; }
+ if (n < 0) { return false; }
- var p = get_packet_num(parent);
- switch (get_row_type(parent)) {
+ CSIter pa = new CSIter(parent);
+ it.copy(pa);
+ switch (pa.row_type) {
case RowType.PACKET:
- if (n > m_cs.packets[p].length || n < 0) { return false; }
- set_iter(ref iter, p, n+1, 0);
- return true;
+ if (n > m_cs.packets[pa.packet].length) { return false; }
+ it.in_dwords = true;
+ it.dword = n;
+ break;
case RowType.HEADER:
- if (n >= packet_headers_length[m_cs.packets[p].type_id] || n < 0) { return false; }
- set_iter(ref iter, p, 1, n+1);
- return true;
+ if (n >= packet_headers_length[m_cs.packets[pa.packet].type_id]) { return false; }
+ it.in_bitfields = true;
+ it.bitfield = n;
+ break;
- case RowType.DWORD: return false; /* TODO */
- case RowType.BITFIELD: return false;
- case RowType.HEADER_BITFIELD: return false;
+ case RowType.DWORD:
+ if (n >= get_variant_count(dword_addr(pa.packet, pa.dword))) { return false; }
+ it.in_variants = true;
+ it.variant = n;
+ break;
+
+ case RowType.VARIANT:
+ if (n >= get_bitfield_count(dword_addr(pa.packet, pa.dword), pa.variant)) { return false; }
+ it.in_bitfields = true;
+ it.bitfield = n;
+ break;
+
+ case RowType.BITFIELD:
+ case RowType.HEADER_BITFIELD:
+ default:
+ return false;
}
- return false;
+ iter.stamp = m_stamp;
+ return true;
}
public bool iter_parent(out TreeIter iter, TreeIter child)
{
- if (has_bitfields(child)) {
- set_iter(ref iter, get_packet_num(child), get_dword_num(child), 0);
- return true;
- } else if (has_dwords(child)) {
- set_iter(ref iter, get_packet_num(child), 0, 0);
- return true;
+ iter.stamp = 0;
+ if (child.stamp != m_stamp) { return false; }
+
+ CSIter it = new CSIter(iter);
+ CSIter ch = new CSIter(child);
+ it.copy(ch);
+ if (ch.in_bitfields) {
+ it.in_bitfields = false;
+ } else if (ch.in_variants) {
+ it.in_variants = false;
+ } else if (ch.in_dwords) {
+ it.in_dwords = false;
+ } else {
+ return false;
}
- return false;
+ iter.stamp = m_stamp;
+ return true;
}
public void ref_node(TreeIter iter) { return; }
@@ -494,7 +711,7 @@ namespace GUI
vbl.pack_start(cs_sw, true, true, 0);
vbl.pack_start(m_pkgdown = new Button.from_stock("gtk-go-down"), false, true, 0);
- var state_reg_list = new TreeView();
+ /*var state_reg_list = new TreeView();
state_reg_list.set_model(m_reg_store = new ListStore(2, typeof(string), typeof(uint32)));
var sreg_sw = new ScrolledWindow(null, null);
@@ -520,20 +737,21 @@ namespace GUI
var paned = new HPaned();
paned.add1(vbl);
paned.add2(nb);
- paned.position = 400;
+ paned.position = 400;*/
- this.add(paned);
+ //this.add(paned);
+ this.add(vbl);
this.border_width = 10;
this.set_default_size(640, 480);
}
private void current_dword_renderer(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter)
{
- if (m_pos == (model as CSListModel).get_packet_num(iter)) {
+ /*if (m_pos == (model as CSListModel).get_packet_num(iter)) {
(cell as Gtk.CellRendererPixbuf).stock_id = "gtk-media-record";
} else {
(cell as Gtk.CellRendererPixbuf).stock_id = "";
- }
+ }*/
}
}
}
diff --git a/src/main.c b/src/main.c
index 786e593..422e3a8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,3 +1,6 @@
+/* main.c generated by valac, the Vala compiler
+ * generated from main.vala, do not modify */
+
#include <glib.h>
#include <glib-object.h>
@@ -17,6 +20,7 @@
typedef struct _GUICActions GUICActions;
typedef struct _GUICActionsClass GUICActionsClass;
typedef struct _GUICActionsPrivate GUICActionsPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define EMULATION_TYPE_CHIP (emulation_chip_get_type ())
@@ -52,6 +56,7 @@ typedef struct _GUIParamSpecCMenus GUIParamSpecCMenus;
typedef struct _GUICMain GUICMain;
typedef struct _GUICMainClass GUICMainClass;
typedef struct _GUICMainPrivate GUICMainPrivate;
+#define _gui_cmenus_unref0(var) ((var == NULL) ? NULL : (var = (gui_cmenus_unref (var), NULL)))
#define EMULATION_TYPE_CS (emulation_cs_get_type ())
#define EMULATION_CS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_CS, EmulationCS))
@@ -73,6 +78,7 @@ typedef struct _EmulationCSPrivate EmulationCSPrivate;
typedef struct _EmulationPacketBase EmulationPacketBase;
typedef struct _EmulationPacketBaseClass EmulationPacketBaseClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
#define EMULATION_TYPE_SPEC (emulation_spec_get_type ())
#define EMULATION_SPEC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_SPEC, EmulationSpec))
@@ -213,11 +219,11 @@ GType emulation_spec_get_type (void);
GUICSView* gui_cs_view_new (EmulationCS* cs, EmulationSpec* spec);
GUICSView* gui_cs_view_construct (GType object_type, EmulationCS* cs, EmulationSpec* spec);
GType gui_cs_view_get_type (void);
-static void gui_cmain_open_csview (GUICMain* self, const GtkTreePath* path, GtkTreeViewColumn* column);
+static void gui_cmain_open_csview (GUICMain* self, GtkTreePath* path, GtkTreeViewColumn* column);
GUICMain* gui_cmain_new (void);
GUICMain* gui_cmain_construct (GType object_type);
static void _gui_cmain_dwords_cellrenderer_gtk_tree_cell_data_func (GtkTreeViewColumn* tree_column, GtkCellRenderer* cell, GtkTreeModel* tree_model, GtkTreeIter* iter, gpointer self);
-static void _gui_cmain_open_csview_gtk_tree_view_row_activated (GtkTreeView* _sender, const GtkTreePath* path, GtkTreeViewColumn* column, gpointer self);
+static void _gui_cmain_open_csview_gtk_tree_view_row_activated (GtkTreeView* _sender, GtkTreePath* path, GtkTreeViewColumn* column, gpointer self);
static void _gtk_main_quit_gtk_object_destroy (GtkObject* _sender, gpointer self);
static GObject * gui_cmain_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
static void gui_cmain_finalize (GObject* obj);
@@ -246,7 +252,7 @@ static void _lambda10_ (GtkAction* source, GUICActions* self) {
g_return_if_fail (source != NULL);
d = g_object_ref_sink (gui_cs_import_new ());
gtk_dialog_run ((GtkDialog*) d);
- (d == NULL) ? NULL : (d = (g_object_unref (d), NULL));
+ _g_object_unref0 (d);
}
@@ -257,11 +263,9 @@ static void __lambda10__gtk_action_activate (GtkAction* _sender, gpointer self)
static GObject * gui_cactions_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
- GUICActionsClass * klass;
GObjectClass * parent_class;
GUICActions * self;
- klass = GUI_CACTIONS_CLASS (g_type_class_peek (GUI_TYPE_CACTIONS));
- parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
+ parent_class = G_OBJECT_CLASS (gui_cactions_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = GUI_CACTIONS (obj);
{
@@ -275,29 +279,19 @@ static GObject * gui_cactions_constructor (GType type, guint n_construct_propert
GtkAction* _tmp7_;
GtkRadioAction* _tmp8_;
GtkRadioAction* _tmp9_;
- _tmp0_ = NULL;
- self->New = (_tmp0_ = gtk_action_new ("New", NULL, NULL, "gtk-new"), (self->New == NULL) ? NULL : (self->New = (g_object_unref (self->New), NULL)), _tmp0_);
- _tmp1_ = NULL;
- self->Open = (_tmp1_ = gtk_action_new ("Open", NULL, NULL, "gtk-open"), (self->Open == NULL) ? NULL : (self->Open = (g_object_unref (self->Open), NULL)), _tmp1_);
- _tmp2_ = NULL;
- self->Save = (_tmp2_ = gtk_action_new ("Save", NULL, NULL, "gtk-save"), (self->Save == NULL) ? NULL : (self->Save = (g_object_unref (self->Save), NULL)), _tmp2_);
- _tmp3_ = NULL;
- self->SaveAs = (_tmp3_ = gtk_action_new ("SaveAs", NULL, NULL, "gtk-save-as"), (self->SaveAs == NULL) ? NULL : (self->SaveAs = (g_object_unref (self->SaveAs), NULL)), _tmp3_);
- _tmp4_ = NULL;
- self->RemoveCS = (_tmp4_ = gtk_action_new ("RemoveCS", "Remove", "Remove selected CS' from the list", "gtk-remove"), (self->RemoveCS == NULL) ? NULL : (self->RemoveCS = (g_object_unref (self->RemoveCS), NULL)), _tmp4_);
- _tmp5_ = NULL;
- self->ImportCS = (_tmp5_ = gtk_action_new ("ImportCS", "Import", "Import a command stream to the list", "gtk-add"), (self->ImportCS == NULL) ? NULL : (self->ImportCS = (g_object_unref (self->ImportCS), NULL)), _tmp5_);
- _tmp6_ = NULL;
- self->ExportCS = (_tmp6_ = gtk_action_new ("ExportCS", "Export", "Export a CS to a file", "gtk-convert"), (self->ExportCS == NULL) ? NULL : (self->ExportCS = (g_object_unref (self->ExportCS), NULL)), _tmp6_);
- _tmp7_ = NULL;
- self->Quit = (_tmp7_ = gtk_action_new ("Quit", NULL, NULL, "gtk-quit"), (self->Quit == NULL) ? NULL : (self->Quit = (g_object_unref (self->Quit), NULL)), _tmp7_);
- _tmp8_ = NULL;
- self->EmulateR300 = (_tmp8_ = gtk_radio_action_new ("EmulateR300", "R300", "Emulate the R300 register space", NULL, (gint) EMULATION_CHIP_R300), (self->EmulateR300 == NULL) ? NULL : (self->EmulateR300 = (g_object_unref (self->EmulateR300), NULL)), _tmp8_);
- _tmp9_ = NULL;
- self->EmulateR500 = (_tmp9_ = gtk_radio_action_new ("EmulateR500", "R500", "Emulate the R500 register space", NULL, (gint) EMULATION_CHIP_R500), (self->EmulateR500 == NULL) ? NULL : (self->EmulateR500 = (g_object_unref (self->EmulateR500), NULL)), _tmp9_);
+ self->New = (_tmp0_ = gtk_action_new ("New", NULL, NULL, "gtk-new"), _g_object_unref0 (self->New), _tmp0_);
+ self->Open = (_tmp1_ = gtk_action_new ("Open", NULL, NULL, "gtk-open"), _g_object_unref0 (self->Open), _tmp1_);
+ self->Save = (_tmp2_ = gtk_action_new ("Save", NULL, NULL, "gtk-save"), _g_object_unref0 (self->Save), _tmp2_);
+ self->SaveAs = (_tmp3_ = gtk_action_new ("SaveAs", NULL, NULL, "gtk-save-as"), _g_object_unref0 (self->SaveAs), _tmp3_);
+ self->RemoveCS = (_tmp4_ = gtk_action_new ("RemoveCS", "Remove", "Remove selected CS' from the list", "gtk-remove"), _g_object_unref0 (self->RemoveCS), _tmp4_);
+ self->ImportCS = (_tmp5_ = gtk_action_new ("ImportCS", "Import", "Import a command stream to the list", "gtk-add"), _g_object_unref0 (self->ImportCS), _tmp5_);
+ self->ExportCS = (_tmp6_ = gtk_action_new ("ExportCS", "Export", "Export a CS to a file", "gtk-convert"), _g_object_unref0 (self->ExportCS), _tmp6_);
+ self->Quit = (_tmp7_ = gtk_action_new ("Quit", NULL, NULL, "gtk-quit"), _g_object_unref0 (self->Quit), _tmp7_);
+ self->EmulateR300 = (_tmp8_ = gtk_radio_action_new ("EmulateR300", "R300", "Emulate the R300 register space", NULL, (gint) EMULATION_CHIP_R300), _g_object_unref0 (self->EmulateR300), _tmp8_);
+ self->EmulateR500 = (_tmp9_ = gtk_radio_action_new ("EmulateR500", "R500", "Emulate the R500 register space", NULL, (gint) EMULATION_CHIP_R500), _g_object_unref0 (self->EmulateR500), _tmp9_);
gtk_radio_action_set_group (self->EmulateR500, gtk_radio_action_get_group (self->EmulateR300));
gtk_radio_action_set_current_value (self->EmulateR300, (gint) EMULATION_CHIP_R300);
- g_signal_connect (self->ImportCS, "activate", (GCallback) __lambda10__gtk_action_activate, self);
+ g_signal_connect_object (self->ImportCS, "activate", (GCallback) __lambda10__gtk_action_activate, self, 0);
}
return obj;
}
@@ -317,16 +311,16 @@ static void gui_cactions_instance_init (GUICActions * self) {
static void gui_cactions_finalize (GObject* obj) {
GUICActions * self;
self = GUI_CACTIONS (obj);
- (self->New == NULL) ? NULL : (self->New = (g_object_unref (self->New), NULL));
- (self->Open == NULL) ? NULL : (self->Open = (g_object_unref (self->Open), NULL));
- (self->Save == NULL) ? NULL : (self->Save = (g_object_unref (self->Save), NULL));
- (self->SaveAs == NULL) ? NULL : (self->SaveAs = (g_object_unref (self->SaveAs), NULL));
- (self->RemoveCS == NULL) ? NULL : (self->RemoveCS = (g_object_unref (self->RemoveCS), NULL));
- (self->ImportCS == NULL) ? NULL : (self->ImportCS = (g_object_unref (self->ImportCS), NULL));
- (self->ExportCS == NULL) ? NULL : (self->ExportCS = (g_object_unref (self->ExportCS), NULL));
- (self->Quit == NULL) ? NULL : (self->Quit = (g_object_unref (self->Quit), NULL));
- (self->EmulateR300 == NULL) ? NULL : (self->EmulateR300 = (g_object_unref (self->EmulateR300), NULL));
- (self->EmulateR500 == NULL) ? NULL : (self->EmulateR500 = (g_object_unref (self->EmulateR500), NULL));
+ _g_object_unref0 (self->New);
+ _g_object_unref0 (self->Open);
+ _g_object_unref0 (self->Save);
+ _g_object_unref0 (self->SaveAs);
+ _g_object_unref0 (self->RemoveCS);
+ _g_object_unref0 (self->ImportCS);
+ _g_object_unref0 (self->ExportCS);
+ _g_object_unref0 (self->Quit);
+ _g_object_unref0 (self->EmulateR300);
+ _g_object_unref0 (self->EmulateR500);
G_OBJECT_CLASS (gui_cactions_parent_class)->finalize (obj);
}
@@ -460,9 +454,9 @@ static void gui_cmenus_instance_init (GUICMenus * self) {
static void gui_cmenus_finalize (GUICMenus* obj) {
GUICMenus * self;
self = GUI_CMENUS (obj);
- (self->file == NULL) ? NULL : (self->file = (g_object_unref (self->file), NULL));
- (self->edit == NULL) ? NULL : (self->edit = (g_object_unref (self->edit), NULL));
- (self->emulation == NULL) ? NULL : (self->emulation = (g_object_unref (self->emulation), NULL));
+ _g_object_unref0 (self->file);
+ _g_object_unref0 (self->edit);
+ _g_object_unref0 (self->emulation);
}
@@ -496,18 +490,20 @@ void gui_cmenus_unref (gpointer instance) {
}
+static gpointer _g_object_ref0 (gpointer self) {
+ return self ? g_object_ref (self) : NULL;
+}
+
+
static void gui_cmain_add_toolitem (GUICMain* self, GtkAction* action) {
- GtkToolItem* _tmp1_;
GtkWidget* _tmp0_;
GtkToolItem* titem;
g_return_if_fail (self != NULL);
g_return_if_fail (action != NULL);
- _tmp1_ = NULL;
- _tmp0_ = NULL;
- titem = (_tmp1_ = (_tmp0_ = gtk_action_create_tool_item (action), GTK_IS_TOOL_ITEM (_tmp0_) ? ((GtkToolItem*) _tmp0_) : NULL), (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_));
+ titem = _g_object_ref0 ((_tmp0_ = gtk_action_create_tool_item (action), GTK_IS_TOOL_ITEM (_tmp0_) ? ((GtkToolItem*) _tmp0_) : NULL));
gtk_tool_item_set_homogeneous (titem, FALSE);
gtk_toolbar_insert (self->toolbar, titem, -1);
- (titem == NULL) ? NULL : (titem = (g_object_unref (titem), NULL));
+ _g_object_unref0 (titem);
}
@@ -520,17 +516,15 @@ static void gui_cmain_dwords_cellrenderer (GUICMain* self, GtkTreeViewColumn* tr
g_return_if_fail (cell != NULL);
g_return_if_fail (model != NULL);
cs = NULL;
- gtk_tree_model_get (model, &(*iter), 1, &cs, -1, -1);
+ gtk_tree_model_get (model, iter, 1, &cs, -1, -1);
g_assert (cs != NULL);
- _tmp0_ = NULL;
- _tmp1_ = NULL;
g_object_set ((_tmp1_ = cell, GTK_IS_CELL_RENDERER_TEXT (_tmp1_) ? ((GtkCellRendererText*) _tmp1_) : NULL), "text", _tmp0_ = g_strdup_printf ("%i", cs->dwords_length1), NULL);
- _tmp0_ = (g_free (_tmp0_), NULL);
- (cs == NULL) ? NULL : (cs = (g_object_unref (cs), NULL));
+ _g_free0 (_tmp0_);
+ _g_object_unref0 (cs);
}
-static void gui_cmain_open_csview (GUICMain* self, const GtkTreePath* path, GtkTreeViewColumn* column) {
+static void gui_cmain_open_csview (GUICMain* self, GtkTreePath* path, GtkTreeViewColumn* column) {
GtkTreeIter iter = {0};
EmulationCS* cs;
GUICSView* csv;
@@ -542,8 +536,8 @@ static void gui_cmain_open_csview (GUICMain* self, const GtkTreePath* path, GtkT
gtk_tree_model_get ((GtkTreeModel*) self->cs_store, &iter, 1, &cs, -1, -1);
csv = g_object_ref_sink (gui_cs_view_new (cs, r500_registers));
gtk_widget_show_all ((GtkWidget*) csv);
- (cs == NULL) ? NULL : (cs = (g_object_unref (cs), NULL));
- (csv == NULL) ? NULL : (csv = (g_object_unref (csv), NULL));
+ _g_object_unref0 (cs);
+ _g_object_unref0 (csv);
}
@@ -564,7 +558,7 @@ static void _gui_cmain_dwords_cellrenderer_gtk_tree_cell_data_func (GtkTreeViewC
}
-static void _gui_cmain_open_csview_gtk_tree_view_row_activated (GtkTreeView* _sender, const GtkTreePath* path, GtkTreeViewColumn* column, gpointer self) {
+static void _gui_cmain_open_csview_gtk_tree_view_row_activated (GtkTreeView* _sender, GtkTreePath* path, GtkTreeViewColumn* column, gpointer self) {
gui_cmain_open_csview (self, path, column);
}
@@ -576,12 +570,10 @@ static void _gtk_main_quit_gtk_object_destroy (GtkObject* _sender, gpointer self
static GObject * gui_cmain_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
- GUICMainClass * klass;
GObjectClass * parent_class;
GUICMain * self;
GError * _inner_error_;
- klass = GUI_CMAIN_CLASS (g_type_class_peek (GUI_TYPE_CMAIN));
- parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
+ parent_class = G_OBJECT_CLASS (gui_cmain_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = GUI_CMAIN (obj);
_inner_error_ = NULL;
@@ -615,70 +607,47 @@ static GObject * gui_cmain_constructor (GType type, guint n_construct_properties
GtkCellRendererText* _tmp32_;
GtkScrolledWindow* sw;
GtkVBox* mainbox;
- _tmp10_ = NULL;
- self->menu = (_tmp10_ = gui_cmenus_new (), (self->menu == NULL) ? NULL : (self->menu = (gui_cmenus_unref (self->menu), NULL)), _tmp10_);
- _tmp11_ = NULL;
- self->toolbar = (_tmp11_ = g_object_ref_sink ((GtkToolbar*) gtk_toolbar_new ()), (self->toolbar == NULL) ? NULL : (self->toolbar = (g_object_unref (self->toolbar), NULL)), _tmp11_);
+ self->menu = (_tmp10_ = gui_cmenus_new (), _gui_cmenus_unref0 (self->menu), _tmp10_);
+ self->toolbar = (_tmp11_ = g_object_ref_sink ((GtkToolbar*) gtk_toolbar_new ()), _g_object_unref0 (self->toolbar), _tmp11_);
gui_cmain_add_toolitem (self, gui_actions->New);
gui_cmain_add_toolitem (self, gui_actions->Open);
gui_cmain_add_toolitem (self, gui_actions->Save);
- _tmp13_ = NULL;
- _tmp12_ = NULL;
gtk_toolbar_insert (self->toolbar, _tmp13_ = (_tmp12_ = g_object_ref_sink ((GtkSeparatorToolItem*) gtk_separator_tool_item_new ()), GTK_IS_TOOL_ITEM (_tmp12_) ? ((GtkToolItem*) _tmp12_) : NULL), -1);
- (_tmp13_ == NULL) ? NULL : (_tmp13_ = (g_object_unref (_tmp13_), NULL));
+ _g_object_unref0 (_tmp13_);
gui_cmain_add_toolitem (self, gui_actions->RemoveCS);
gui_cmain_add_toolitem (self, gui_actions->ImportCS);
gui_cmain_add_toolitem (self, gui_actions->ExportCS);
- _tmp14_ = NULL;
- self->menu->file = (_tmp14_ = g_object_ref_sink ((GtkMenu*) gtk_menu_new ()), (self->menu->file == NULL) ? NULL : (self->menu->file = (g_object_unref (self->menu->file), NULL)), _tmp14_);
- _tmp15_ = NULL;
+ self->menu->file = (_tmp14_ = g_object_ref_sink ((GtkMenu*) gtk_menu_new ()), _g_object_unref0 (self->menu->file), _tmp14_);
gtk_menu_shell_append ((GtkMenuShell*) self->menu->file, (GtkWidget*) (_tmp15_ = gtk_action_create_menu_item (gui_actions->New), GTK_IS_MENU_ITEM (_tmp15_) ? ((GtkMenuItem*) _tmp15_) : NULL));
- _tmp16_ = NULL;
gtk_menu_shell_append ((GtkMenuShell*) self->menu->file, (GtkWidget*) (_tmp16_ = gtk_action_create_menu_item (gui_actions->Open), GTK_IS_MENU_ITEM (_tmp16_) ? ((GtkMenuItem*) _tmp16_) : NULL));
- _tmp17_ = NULL;
gtk_menu_shell_append ((GtkMenuShell*) self->menu->file, (GtkWidget*) (_tmp17_ = gtk_action_create_menu_item (gui_actions->Save), GTK_IS_MENU_ITEM (_tmp17_) ? ((GtkMenuItem*) _tmp17_) : NULL));
- _tmp18_ = NULL;
gtk_menu_shell_append ((GtkMenuShell*) self->menu->file, (GtkWidget*) (_tmp18_ = gtk_action_create_menu_item (gui_actions->SaveAs), GTK_IS_MENU_ITEM (_tmp18_) ? ((GtkMenuItem*) _tmp18_) : NULL));
- _tmp20_ = NULL;
- _tmp19_ = NULL;
gtk_menu_shell_append ((GtkMenuShell*) self->menu->file, (GtkWidget*) (_tmp20_ = (_tmp19_ = g_object_ref_sink ((GtkSeparatorMenuItem*) gtk_separator_menu_item_new ()), GTK_IS_MENU_ITEM (_tmp19_) ? ((GtkMenuItem*) _tmp19_) : NULL)));
- (_tmp20_ == NULL) ? NULL : (_tmp20_ = (g_object_unref (_tmp20_), NULL));
- _tmp21_ = NULL;
+ _g_object_unref0 (_tmp20_);
gtk_menu_shell_append ((GtkMenuShell*) self->menu->file, (GtkWidget*) (_tmp21_ = gtk_action_create_menu_item (gui_actions->Quit), GTK_IS_MENU_ITEM (_tmp21_) ? ((GtkMenuItem*) _tmp21_) : NULL));
menu_file_item = g_object_ref_sink ((GtkMenuItem*) gtk_menu_item_new_with_label ("File"));
gtk_menu_item_set_submenu (menu_file_item, self->menu->file);
- _tmp22_ = NULL;
- self->menu->edit = (_tmp22_ = g_object_ref_sink ((GtkMenu*) gtk_menu_new ()), (self->menu->edit == NULL) ? NULL : (self->menu->edit = (g_object_unref (self->menu->edit), NULL)), _tmp22_);
- _tmp23_ = NULL;
+ self->menu->edit = (_tmp22_ = g_object_ref_sink ((GtkMenu*) gtk_menu_new ()), _g_object_unref0 (self->menu->edit), _tmp22_);
gtk_menu_shell_append ((GtkMenuShell*) self->menu->edit, (GtkWidget*) (_tmp23_ = gtk_action_create_menu_item (gui_actions->RemoveCS), GTK_IS_MENU_ITEM (_tmp23_) ? ((GtkMenuItem*) _tmp23_) : NULL));
- _tmp24_ = NULL;
gtk_menu_shell_append ((GtkMenuShell*) self->menu->edit, (GtkWidget*) (_tmp24_ = gtk_action_create_menu_item (gui_actions->ImportCS), GTK_IS_MENU_ITEM (_tmp24_) ? ((GtkMenuItem*) _tmp24_) : NULL));
- _tmp25_ = NULL;
gtk_menu_shell_append ((GtkMenuShell*) self->menu->edit, (GtkWidget*) (_tmp25_ = gtk_action_create_menu_item (gui_actions->ExportCS), GTK_IS_MENU_ITEM (_tmp25_) ? ((GtkMenuItem*) _tmp25_) : NULL));
menu_edit_item = g_object_ref_sink ((GtkMenuItem*) gtk_menu_item_new_with_label ("Edit"));
gtk_menu_item_set_submenu (menu_edit_item, self->menu->edit);
- _tmp26_ = NULL;
- self->menu->emulation = (_tmp26_ = g_object_ref_sink ((GtkMenu*) gtk_menu_new ()), (self->menu->emulation == NULL) ? NULL : (self->menu->emulation = (g_object_unref (self->menu->emulation), NULL)), _tmp26_);
- _tmp27_ = NULL;
+ self->menu->emulation = (_tmp26_ = g_object_ref_sink ((GtkMenu*) gtk_menu_new ()), _g_object_unref0 (self->menu->emulation), _tmp26_);
gtk_menu_shell_append ((GtkMenuShell*) self->menu->emulation, (GtkWidget*) (_tmp27_ = gtk_action_create_menu_item ((GtkAction*) gui_actions->EmulateR300), GTK_IS_MENU_ITEM (_tmp27_) ? ((GtkMenuItem*) _tmp27_) : NULL));
- _tmp28_ = NULL;
gtk_menu_shell_append ((GtkMenuShell*) self->menu->emulation, (GtkWidget*) (_tmp28_ = gtk_action_create_menu_item ((GtkAction*) gui_actions->EmulateR500), GTK_IS_MENU_ITEM (_tmp28_) ? ((GtkMenuItem*) _tmp28_) : NULL));
menu_emulation_item = g_object_ref_sink ((GtkMenuItem*) gtk_menu_item_new_with_label ("Emulation"));
gtk_menu_item_set_submenu (menu_emulation_item, self->menu->emulation);
- _tmp29_ = NULL;
- self->menubar = (_tmp29_ = g_object_ref_sink ((GtkMenuBar*) gtk_menu_bar_new ()), (self->menubar == NULL) ? NULL : (self->menubar = (g_object_unref (self->menubar), NULL)), _tmp29_);
+ self->menubar = (_tmp29_ = g_object_ref_sink ((GtkMenuBar*) gtk_menu_bar_new ()), _g_object_unref0 (self->menubar), _tmp29_);
gtk_menu_shell_append ((GtkMenuShell*) self->menubar, (GtkWidget*) menu_file_item);
gtk_menu_shell_append ((GtkMenuShell*) self->menubar, (GtkWidget*) menu_edit_item);
gtk_menu_shell_append ((GtkMenuShell*) self->menubar, (GtkWidget*) menu_emulation_item);
- _tmp30_ = NULL;
- self->cs_store = (_tmp30_ = gtk_list_store_new (2, G_TYPE_STRING, EMULATION_TYPE_CS, NULL), (self->cs_store == NULL) ? NULL : (self->cs_store = (g_object_unref (self->cs_store), NULL)), _tmp30_);
+ self->cs_store = (_tmp30_ = gtk_list_store_new (2, G_TYPE_STRING, EMULATION_TYPE_CS, NULL), _g_object_unref0 (self->cs_store), _tmp30_);
cslist = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ());
- _tmp31_ = NULL;
gtk_tree_view_insert_column_with_data_func (cslist, -1, "DWORDs", (GtkCellRenderer*) (_tmp31_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), _gui_cmain_dwords_cellrenderer_gtk_tree_cell_data_func, g_object_ref (self), g_object_unref);
- (_tmp31_ == NULL) ? NULL : (_tmp31_ = (g_object_unref (_tmp31_), NULL));
- _tmp32_ = NULL;
+ _g_object_unref0 (_tmp31_);
gtk_tree_view_insert_column_with_attributes (cslist, -1, "Name", (GtkCellRenderer*) (_tmp32_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), "text", 0, NULL, NULL);
- (_tmp32_ == NULL) ? NULL : (_tmp32_ = (g_object_unref (_tmp32_), NULL));
+ _g_object_unref0 (_tmp32_);
gtk_tree_view_set_model (cslist, (GtkTreeModel*) self->cs_store);
g_signal_connect_object (cslist, "row-activated", (GCallback) _gui_cmain_open_csview_gtk_tree_view_row_activated, self, 0);
sw = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
@@ -693,25 +662,24 @@ static GObject * gui_cmain_constructor (GType type, guint n_construct_properties
gtk_window_set_title ((GtkWindow*) self, "Radeon Simulator");
gtk_container_add ((GtkContainer*) self, (GtkWidget*) mainbox);
g_signal_connect ((GtkObject*) self, "destroy", (GCallback) _gtk_main_quit_gtk_object_destroy, NULL);
- /* XXX This shouldn't be hardcoded */
gtk_window_set_icon_from_file ((GtkWindow*) self, "/usr/share/pixmaps/rsim.png", &_inner_error_);
if (_inner_error_ != NULL) {
- (menu_file_item == NULL) ? NULL : (menu_file_item = (g_object_unref (menu_file_item), NULL));
- (menu_edit_item == NULL) ? NULL : (menu_edit_item = (g_object_unref (menu_edit_item), NULL));
- (menu_emulation_item == NULL) ? NULL : (menu_emulation_item = (g_object_unref (menu_emulation_item), NULL));
- (cslist == NULL) ? NULL : (cslist = (g_object_unref (cslist), NULL));
- (sw == NULL) ? NULL : (sw = (g_object_unref (sw), NULL));
- (mainbox == NULL) ? NULL : (mainbox = (g_object_unref (mainbox), NULL));
+ _g_object_unref0 (menu_file_item);
+ _g_object_unref0 (menu_edit_item);
+ _g_object_unref0 (menu_emulation_item);
+ _g_object_unref0 (cslist);
+ _g_object_unref0 (sw);
+ _g_object_unref0 (mainbox);
g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message);
g_clear_error (&_inner_error_);
}
gtk_widget_show_all ((GtkWidget*) self);
- (menu_file_item == NULL) ? NULL : (menu_file_item = (g_object_unref (menu_file_item), NULL));
- (menu_edit_item == NULL) ? NULL : (menu_edit_item = (g_object_unref (menu_edit_item), NULL));
- (menu_emulation_item == NULL) ? NULL : (menu_emulation_item = (g_object_unref (menu_emulation_item), NULL));
- (cslist == NULL) ? NULL : (cslist = (g_object_unref (cslist), NULL));
- (sw == NULL) ? NULL : (sw = (g_object_unref (sw), NULL));
- (mainbox == NULL) ? NULL : (mainbox = (g_object_unref (mainbox), NULL));
+ _g_object_unref0 (menu_file_item);
+ _g_object_unref0 (menu_edit_item);
+ _g_object_unref0 (menu_emulation_item);
+ _g_object_unref0 (cslist);
+ _g_object_unref0 (sw);
+ _g_object_unref0 (mainbox);
}
return obj;
}
@@ -731,10 +699,10 @@ static void gui_cmain_instance_init (GUICMain * self) {
static void gui_cmain_finalize (GObject* obj) {
GUICMain * self;
self = GUI_CMAIN (obj);
- (self->menu == NULL) ? NULL : (self->menu = (gui_cmenus_unref (self->menu), NULL));
- (self->menubar == NULL) ? NULL : (self->menubar = (g_object_unref (self->menubar), NULL));
- (self->toolbar == NULL) ? NULL : (self->toolbar = (g_object_unref (self->toolbar), NULL));
- (self->cs_store == NULL) ? NULL : (self->cs_store = (g_object_unref (self->cs_store), NULL));
+ _gui_cmenus_unref0 (self->menu);
+ _g_object_unref0 (self->menubar);
+ _g_object_unref0 (self->toolbar);
+ _g_object_unref0 (self->cs_store);
G_OBJECT_CLASS (gui_cmain_parent_class)->finalize (obj);
}
@@ -752,11 +720,9 @@ GType gui_cmain_get_type (void) {
void gui_init (char*** args, int* args_length1) {
GUICActions* _tmp0_;
GUICMain* _tmp1_;
- gtk_init (&(*args_length1), &(*args));
- _tmp0_ = NULL;
- gui_actions = (_tmp0_ = gui_cactions_new (), (gui_actions == NULL) ? NULL : (gui_actions = (g_object_unref (gui_actions), NULL)), _tmp0_);
- _tmp1_ = NULL;
- gui_main = (_tmp1_ = g_object_ref_sink (gui_cmain_new ()), (gui_main == NULL) ? NULL : (gui_main = (g_object_unref (gui_main), NULL)), _tmp1_);
+ gtk_init (args_length1, args);
+ gui_actions = (_tmp0_ = gui_cactions_new (), _g_object_unref0 (gui_actions), _tmp0_);
+ gui_main = (_tmp1_ = g_object_ref_sink (gui_cmain_new ()), _g_object_unref0 (gui_main), _tmp1_);
gtk_main ();
}
@@ -765,15 +731,11 @@ gint _main (char** args, int args_length1) {
gint result;
EmulationSpec* _tmp0_;
EmulationSpec* _tmp1_;
- _tmp0_ = NULL;
- r300_registers = (_tmp0_ = emulation_spec_new (), (r300_registers == NULL) ? NULL : (r300_registers = (g_object_unref (r300_registers), NULL)), _tmp0_);
- _tmp1_ = NULL;
- r500_registers = (_tmp1_ = emulation_spec_new (), (r500_registers == NULL) ? NULL : (r500_registers = (g_object_unref (r500_registers), NULL)), _tmp1_);
- /* XXX This shouldn't be hardcoded */
+ r300_registers = (_tmp0_ = emulation_spec_new (), _g_object_unref0 (r300_registers), _tmp0_);
+ r500_registers = (_tmp1_ = emulation_spec_new (), _g_object_unref0 (r500_registers), _tmp1_);
emulation_spec_load_xml (r300_registers, "/usr/share/rsim/r300reg.xml", "r300");
emulation_spec_load_xml (r500_registers, "/usr/share/rsim/r300reg.xml", "r500");
gui_init (&args, &args_length1);
- /* vala doesn't unref globals */
g_object_unref ((GObject*) r300_registers);
g_object_unref ((GObject*) r500_registers);
g_object_unref ((GObject*) gui_actions);
diff --git a/src/registers.c b/src/registers.c
index 93db199..0cfc92e 100644
--- a/src/registers.c
+++ b/src/registers.c
@@ -1,3 +1,6 @@
+/* registers.c generated by valac, the Vala compiler
+ * generated from registers.vala, do not modify */
+
#include <glib.h>
#include <glib-object.h>
@@ -21,6 +24,7 @@
typedef struct _EmulationBitfieldValue EmulationBitfieldValue;
typedef struct _EmulationBitfieldValueClass EmulationBitfieldValueClass;
typedef struct _EmulationBitfieldValuePrivate EmulationBitfieldValuePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
#define EMULATION_TYPE_BITFIELD_ENUM (emulation_bitfield_enum_get_type ())
#define EMULATION_BITFIELD_ENUM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_BITFIELD_ENUM, EmulationBitfieldEnum))
@@ -32,6 +36,7 @@ typedef struct _EmulationBitfieldValuePrivate EmulationBitfieldValuePrivate;
typedef struct _EmulationBitfieldEnum EmulationBitfieldEnum;
typedef struct _EmulationBitfieldEnumClass EmulationBitfieldEnumClass;
typedef struct _EmulationBitfieldEnumPrivate EmulationBitfieldEnumPrivate;
+#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
#define EMULATION_TYPE_BITFIELD (emulation_bitfield_get_type ())
#define EMULATION_BITFIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_BITFIELD, EmulationBitfield))
@@ -43,6 +48,7 @@ typedef struct _EmulationBitfieldEnumPrivate EmulationBitfieldEnumPrivate;
typedef struct _EmulationBitfield EmulationBitfield;
typedef struct _EmulationBitfieldClass EmulationBitfieldClass;
typedef struct _EmulationBitfieldPrivate EmulationBitfieldPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define EMULATION_TYPE_BITFIELD_ITERATOR (emulation_bitfield_iterator_get_type ())
#define EMULATION_BITFIELD_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_BITFIELD_ITERATOR, EmulationBitfieldIterator))
@@ -66,6 +72,7 @@ typedef struct _EmulationParamSpecBitfieldIterator EmulationParamSpecBitfieldIte
typedef struct _EmulationRegisterInfo EmulationRegisterInfo;
typedef struct _EmulationRegisterInfoClass EmulationRegisterInfoClass;
typedef struct _EmulationRegisterInfoPrivate EmulationRegisterInfoPrivate;
+#define __g_list_free_g_object_unref0(var) ((var == NULL) ? NULL : (var = (_g_list_free_g_object_unref (var), NULL)))
#define EMULATION_TYPE_REGISTER (emulation_register_get_type ())
#define EMULATION_REGISTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMULATION_TYPE_REGISTER, EmulationRegister))
@@ -123,6 +130,7 @@ typedef struct _EmulationParamSpecSpecParser EmulationParamSpecSpecParser;
typedef struct _EmulationSpec EmulationSpec;
typedef struct _EmulationSpecClass EmulationSpecClass;
typedef struct _EmulationSpecPrivate EmulationSpecPrivate;
+#define _emulation_spec_parser_unref0(var) ((var == NULL) ? NULL : (var = (emulation_spec_parser_unref (var), NULL)))
typedef enum {
EMULATION_ACCESS_TYPE_READ = 1 << 0,
@@ -549,7 +557,7 @@ GType emulation_access_type_get_type (void) {
EmulationBitfieldValue* emulation_bitfield_value_construct (GType object_type) {
EmulationBitfieldValue * self;
- self = g_object_newv (object_type, 0, NULL);
+ self = (EmulationBitfieldValue*) g_object_new (object_type, NULL);
return self;
}
@@ -568,12 +576,9 @@ const char* emulation_bitfield_value_get_name (EmulationBitfieldValue* self) {
void emulation_bitfield_value_set_name (EmulationBitfieldValue* self, const char* value) {
- char* _tmp1_;
- const char* _tmp0_;
+ char* _tmp0_;
g_return_if_fail (self != NULL);
- _tmp1_ = NULL;
- _tmp0_ = NULL;
- self->priv->_name = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->_name = (g_free (self->priv->_name), NULL), _tmp1_);
+ self->priv->_name = (_tmp0_ = g_strdup (value), _g_free0 (self->priv->_name), _tmp0_);
g_object_notify ((GObject *) self, "name");
}
@@ -587,12 +592,9 @@ const char* emulation_bitfield_value_get_doc (EmulationBitfieldValue* self) {
void emulation_bitfield_value_set_doc (EmulationBitfieldValue* self, const char* value) {
- char* _tmp1_;
- const char* _tmp0_;
+ char* _tmp0_;
g_return_if_fail (self != NULL);
- _tmp1_ = NULL;
- _tmp0_ = NULL;
- self->priv->_doc = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->_doc = (g_free (self->priv->_doc), NULL), _tmp1_);
+ self->priv->_doc = (_tmp0_ = g_strdup (value), _g_free0 (self->priv->_doc), _tmp0_);
g_object_notify ((GObject *) self, "doc");
}
@@ -632,8 +634,8 @@ static void emulation_bitfield_value_instance_init (EmulationBitfieldValue * sel
static void emulation_bitfield_value_finalize (GObject* obj) {
EmulationBitfieldValue * self;
self = EMULATION_BITFIELD_VALUE (obj);
- self->priv->_name = (g_free (self->priv->_name), NULL);
- self->priv->_doc = (g_free (self->priv->_doc), NULL);
+ _g_free0 (self->priv->_name);
+ _g_free0 (self->priv->_doc);
G_OBJECT_CLASS (emulation_bitfield_value_parent_class)->finalize (obj);
}
@@ -650,7 +652,6 @@ GType emulation_bitfield_value_get_type (void) {
static void emulation_bitfield_value_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
EmulationBitfieldValue * self;
- gpointer boxed;
self = EMULATION_BITFIELD_VALUE (object);
switch (property_id) {
case EMULATION_BITFIELD_VALUE_NAME:
@@ -705,15 +706,21 @@ static guint32* _uint32_dup (guint32* self) {
}
+static gpointer __uint32_dup0 (gpointer self) {
+ return self ? _uint32_dup (self) : NULL;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+ return self ? g_object_ref (self) : NULL;
+}
+
+
void emulation_bitfield_enum_append (EmulationBitfieldEnum* self, EmulationBitfieldValue* v) {
- EmulationBitfieldValue* _tmp2_;
- guint32* _tmp1_;
guint32 _tmp0_;
g_return_if_fail (self != NULL);
g_return_if_fail (v != NULL);
- _tmp2_ = NULL;
- _tmp1_ = NULL;
- g_hash_table_insert (self->priv->vals, (_tmp1_ = (_tmp0_ = emulation_bitfield_value_get_val (v), &_tmp0_), (_tmp1_ == NULL) ? NULL : _uint32_dup (_tmp1_)), (_tmp2_ = v, (_tmp2_ == NULL) ? NULL : g_object_ref (_tmp2_)));
+ g_hash_table_insert (self->priv->vals, __uint32_dup0 ((_tmp0_ = emulation_bitfield_value_get_val (v), &_tmp0_)), _g_object_ref0 (v));
}
@@ -741,7 +748,6 @@ static void __lambda0__gdestroy_notify (void* data) {
static void _lambda1_ (void* ptr) {
void* _tmp0_;
- _tmp0_ = NULL;
g_object_unref ((_tmp0_ = ptr, G_IS_OBJECT (_tmp0_) ? ((GObject*) _tmp0_) : NULL));
}
@@ -753,17 +759,14 @@ static void __lambda1__gdestroy_notify (void* data) {
static GObject * emulation_bitfield_enum_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
- EmulationBitfieldEnumClass * klass;
GObjectClass * parent_class;
EmulationBitfieldEnum * self;
- klass = EMULATION_BITFIELD_ENUM_CLASS (g_type_class_peek (EMULATION_TYPE_BITFIELD_ENUM));
- parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
+ parent_class = G_OBJECT_CLASS (emulation_bitfield_enum_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = EMULATION_BITFIELD_ENUM (obj);
{
GHashTable* _tmp0_;
- _tmp0_ = NULL;
- self->priv->vals = (_tmp0_ = g_hash_table_new_full (g_int_hash, g_int_equal, __lambda0__gdestroy_notify, __lambda1__gdestroy_notify), (self->priv->vals == NULL) ? NULL : (self->priv->vals = (g_hash_table_unref (self->priv->vals), NULL)), _tmp0_);
+ self->priv->vals = (_tmp0_ = g_hash_table_new_full (g_int_hash, g_int_equal, __lambda0__gdestroy_notify, __lambda1__gdestroy_notify), _g_hash_table_unref0 (self->priv->vals), _tmp0_);
}
return obj;
}
@@ -785,7 +788,7 @@ static void emulation_bitfield_enum_instance_init (EmulationBitfieldEnum * self)
static void emulation_bitfield_enum_finalize (GObject* obj) {
EmulationBitfieldEnum * self;
self = EMULATION_BITFIELD_ENUM (obj);
- (self->priv->vals == NULL) ? NULL : (self->priv->vals = (g_hash_table_unref (self->priv->vals), NULL));
+ _g_hash_table_unref0 (self->priv->vals);
G_OBJECT_CLASS (emulation_bitfield_enum_parent_class)->finalize (obj);
}
@@ -802,7 +805,7 @@ GType emulation_bitfield_enum_get_type (void) {
EmulationBitfield* emulation_bitfield_construct (GType object_type) {
EmulationBitfield * self;
- self = g_object_newv (object_type, 0, NULL);
+ self = (EmulationBitfield*) g_object_new (object_type, NULL);
return self;
}
@@ -821,12 +824,9 @@ const char* emulation_bitfield_get_name (EmulationBitfield* self) {
void emulation_bitfield_set_name (EmulationBitfield* self, const char* value) {
- char* _tmp1_;
- const char* _tmp0_;
+ char* _tmp0_;
g_return_if_fail (self != NULL);
- _tmp1_ = NULL;
- _tmp0_ = NULL;
- self->priv->_name = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->_name = (g_free (self->priv->_name), NULL), _tmp1_);
+ self->priv->_name = (_tmp0_ = g_strdup (value), _g_free0 (self->priv->_name), _tmp0_);
g_object_notify ((GObject *) self, "name");
}
@@ -840,12 +840,9 @@ const char* emulation_bitfield_get_doc (EmulationBitfield* self) {
void emulation_bitfield_set_doc (EmulationBitfield* self, const char* value) {
- char* _tmp1_;
- const char* _tmp0_;
+ char* _tmp0_;
g_return_if_fail (self != NULL);
- _tmp1_ = NULL;
- _tmp0_ = NULL;
- self->priv->_doc = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->_doc = (g_free (self->priv->_doc), NULL), _tmp1_);
+ self->priv->_doc = (_tmp0_ = g_strdup (value), _g_free0 (self->priv->_doc), _tmp0_);
g_object_notify ((GObject *) self, "doc");
}
@@ -889,12 +886,9 @@ EmulationBitfieldEnum* emulation_bitfield_get_enu (EmulationBitfield* self) {
void emulation_bitfield_set_enu (EmulationBitfield* self, EmulationBitfieldEnum* value) {
- EmulationBitfieldEnum* _tmp1_;
EmulationBitfieldEnum* _tmp0_;
g_return_if_fail (self != NULL);
- _tmp1_ = NULL;
- _tmp0_ = NULL;
- self->priv->_enu = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)), (self->priv->_enu == NULL) ? NULL : (self->priv->_enu = (g_object_unref (self->priv->_enu), NULL)), _tmp1_);
+ self->priv->_enu = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_enu), _tmp0_);
g_object_notify ((GObject *) self, "enu");
}
@@ -926,9 +920,9 @@ static void emulation_bitfield_instance_init (EmulationBitfield * self) {
static void emulation_bitfield_finalize (GObject* obj) {
EmulationBitfield * self;
self = EMULATION_BITFIELD (obj);
- self->priv->_name = (g_free (self->priv->_name), NULL);
- self->priv->_doc = (g_free (self->priv->_doc), NULL);
- (self->priv->_enu == NULL) ? NULL : (self->priv->_enu = (g_object_unref (self->priv->_enu), NULL));
+ _g_free0 (self->priv->_name);
+ _g_free0 (self->priv->_doc);
+ _g_object_unref0 (self->priv->_enu);
G_OBJECT_CLASS (emulation_bitfield_parent_class)->finalize (obj);
}
@@ -945,7 +939,6 @@ GType emulation_bitfield_get_type (void) {
static void emulation_bitfield_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
EmulationBitfield * self;
- gpointer boxed;
self = EMULATION_BITFIELD (object);
switch (property_id) {
case EMULATION_BITFIELD_NAME:
@@ -1193,11 +1186,9 @@ EmulationBitfield* emulation_register_info_get (EmulationRegisterInfo* self, gui
void emulation_register_info_append (EmulationRegisterInfo* self, EmulationBitfield* b) {
- EmulationBitfield* _tmp0_;
g_return_if_fail (self != NULL);
g_return_if_fail (b != NULL);
- _tmp0_ = NULL;
- self->priv->bitfields = g_list_append (self->priv->bitfields, (_tmp0_ = b, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)));
+ self->priv->bitfields = g_list_append (self->priv->bitfields, _g_object_ref0 (b));
}
@@ -1222,12 +1213,9 @@ const char* emulation_register_info_get_name (EmulationRegisterInfo* self) {
void emulation_register_info_set_name (EmulationRegisterInfo* self, const char* value) {
- char* _tmp1_;
- const char* _tmp0_;
+ char* _tmp0_;
g_return_if_fail (self != NULL);
- _tmp1_ = NULL;
- _tmp0_ = NULL;
- self->priv->_name = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->_name = (g_free (self->priv->_name), NULL), _tmp1_);
+ self->priv->_name = (_tmp0_ = g_strdup (value), _g_free0 (self->priv->_name), _tmp0_);
g_object_notify ((GObject *) self, "name");
}
@@ -1241,12 +1229,9 @@ const char* emulation_register_info_get_doc (EmulationRegisterInfo* self) {
void emulation_register_info_set_doc (EmulationRegisterInfo* self, const char* value) {
- char* _tmp1_;
- const char* _tmp0_;
+ char* _tmp0_;
g_return_if_fail (self != NULL);
- _tmp1_ = NULL;
- _tmp0_ = NULL;
- self->priv->_doc = (_tmp1_ = (_tmp0_ = value, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->_doc = (g_free (self->priv->_doc), NULL), _tmp1_);
+ self->priv->_doc = (_tmp0_ = g_strdup (value), _g_free0 (self->priv->_doc), _tmp0_);
g_object_notify ((GObject *) self, "doc");
}
@@ -1314,17 +1299,14 @@ GType emulation_register_info_get_extract_type (EmulationRegisterInfo* self) {
static GObject * emulation_register_info_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
- EmulationRegisterInfoClass * klass;
GObjectClass * parent_class;
EmulationRegisterInfo * self;
- klass = EMULATION_REGISTER_INFO_CLASS (g_type_class_peek (EMULATION_TYPE_REGISTER_INFO));
- parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
+ parent_class = G_OBJECT_CLASS (emulation_register_info_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = EMULATION_REGISTER_INFO (obj);
{
GList* _tmp1_;
- _tmp1_ = NULL;
- self->priv->bitfields = (_tmp1_ = NULL, (self->priv->bitfields == NULL) ? NULL : (self->priv->bitfields = (_g_list_free_g_object_unref (self->priv->bitfields), NULL)), _tmp1_);
+ self->priv->bitfields = (_tmp1_ = NULL, __g_list_free_g_object_unref0 (self->priv->bitfields), _tmp1_);
}
return obj;
}
@@ -1360,9 +1342,9 @@ static void emulation_register_info_instance_init (EmulationRegisterInfo * self)
static void emulation_register_info_finalize (GObject* obj) {
EmulationRegisterInfo * self;
self = EMULATION_REGISTER_INFO (obj);
- self->priv->_name = (g_free (self->priv->_name), NULL);
- self->priv->_doc = (g_free (self->priv->_doc), NULL);
- (self->priv->bitfields == NULL) ? NULL : (self->priv->bitfields = (_g_list_free_g_object_unref (self->priv->bitfields), NULL));
+ _g_free0 (self->priv->_name);
+ _g_free0 (self->priv->_doc);
+ __g_list_free_g_object_unref0 (self->priv->bitfields);
G_OBJECT_CLASS (emulation_register_info_parent_class)->finalize (obj);
}
@@ -1379,7 +1361,6 @@ GType emulation_register_info_get_type (void) {
static void emulation_register_info_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
EmulationRegisterInfo * self;
- gpointer boxed;
self = EMULATION_REGISTER_INFO (object);
switch (property_id) {
case EMULATION_REGISTER_INFO_NAME:
@@ -1438,7 +1419,7 @@ static void emulation_register_info_set_property (GObject * object, guint proper
EmulationRegister* emulation_register_construct (GType object_type) {
EmulationRegister * self;
- self = g_object_newv (object_type, 0, NULL);
+ self = (EmulationRegister*) g_object_new (object_type, NULL);
return self;
}
@@ -1561,7 +1542,6 @@ GType emulation_register_get_type (void) {
static void emulation_register_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
EmulationRegister * self;
- gpointer boxed;
self = EMULATION_REGISTER (object);
switch (property_id) {
case EMULATION_REGISTER_ADDR:
@@ -1803,11 +1783,9 @@ EmulationRegister* emulation_register_list_get (EmulationRegisterList* self, gui
void emulation_register_list_append (EmulationRegisterList* self, EmulationRegister* reg) {
- EmulationRegister* _tmp0_;
g_return_if_fail (self != NULL);
g_return_if_fail (reg != NULL);
- _tmp0_ = NULL;
- self->priv->regs = g_list_append (self->priv->regs, (_tmp0_ = reg, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)));
+ self->priv->regs = g_list_append (self->priv->regs, _g_object_ref0 (reg));
}
@@ -1841,17 +1819,14 @@ GType emulation_register_list_get_extract_type (EmulationRegisterList* self) {
static GObject * emulation_register_list_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
GObject * obj;
- EmulationRegisterListClass * klass;
GObjectClass * parent_class;
EmulationRegisterList * self;
- klass = EMULATION_REGISTER_LIST_CLASS (g_type_class_peek (EMULATION_TYPE_REGISTER_LIST));
- parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
+ parent_class = G_OBJECT_CLASS (emulation_register_list_parent_class);
obj = parent_class->constructor (type, n_construct_properties, construct_properties);
self = EMULATION_REGISTER_LIST (obj);
{
GList* _tmp2_;
- _tmp2_ = NULL;
- self->priv->regs = (_tmp2_ = NULL, (self->priv->regs == NULL) ? NULL : (self->priv->regs = (_g_list_free_g_object_unref (self->priv->regs), NULL)), _tmp2_);
+ self->priv->regs = (_tmp2_ = NULL, __g_list_free_g_object_unref0 (self->priv->regs), _tmp2_);
}
return obj;
}
@@ -1876,7 +1851,7 @@ static void emulation_register_list_instance_init (EmulationRegisterList * self)
static void emulation_register_list_finalize (GObject* obj) {
EmulationRegisterList * self;
self = EMULATION_REGISTER_LIST (obj);
- (self->priv->regs == NULL) ? NULL : (self->priv->regs = (_g_list_free_g_object_unref (self->priv->regs), NULL));
+ __g_list_free_g_object_unref0 (self->priv->regs);
G_OBJECT_CLASS (emulation_register_list_parent_class)->finalize (obj);
}
@@ -1893,7 +1868,6 @@ GType emulation_register_list_get_type (void) {
static void emulation_register_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
EmulationRegisterList * self;
- gpointer boxed;
self = EMULATION_REGISTER_LIST (object);
switch (property_id) {
case EMULATION_REGISTER_LIST_LENGTH:
@@ -1921,7 +1895,6 @@ static void __lambda2__gdestroy_notify (void* data) {
static void _lambda3_ (void* ptr) {
void* _tmp0_;
- _tmp0_ = NULL;
g_object_unref ((_tmp0_ = ptr, G_IS_OBJECT (_tmp0_) ? ((GObject*) _tmp0_) : NULL));
}
@@ -1943,7 +1916,6 @@ static void __lambda4__gdestroy_notify (void* data) {
static void _lambda5_ (void* ptr) {
void* _tmp0_;
- _tmp0_ = NULL;
g_object_unref ((_tmp0_ = ptr, G_IS_OBJECT (_tmp0_) ? ((GObject*) _tmp0_) : NULL));
}
@@ -1965,7 +1937,6 @@ static void __lambda6__gdestroy_notify (void* data) {
static void _lambda7_ (void* ptr) {
void* _tmp0_;
- _tmp0_ = NULL;
g_object_unref ((_tmp0_ = ptr, G_IS_OBJECT (_tmp0_) ? ((GObject*) _tmp0_) : NULL));
}
@@ -1987,7 +1958,6 @@ static void __lambda8__gdestroy_notify (void* data) {
static void _lambda9_ (void* ptr) {
void* _tmp0_;
- _tmp0_ = NULL;
g_object_unref ((_tmp0_ = ptr, G_IS_OBJECT (_tmp0_) ? ((GObject*) _tmp0_) : NULL));
}
@@ -2011,16 +1981,11 @@ EmulationSpecParser* emulation_spec_parser_construct (GType object_type, GHashTa
*_regs = NULL;
}
self = (EmulationSpecParser*) g_type_create_instance (object_type);
- _tmp0_ = NULL;
- self->priv->info = (*_info) = (_tmp0_ = g_hash_table_new_full (g_str_hash, g_str_equal, __lambda2__gdestroy_notify, __lambda3__gdestroy_notify), ((*_info) == NULL) ? NULL : ((*_info) = (g_hash_table_unref ((*_info)), NULL)), _tmp0_);
- _tmp1_ = NULL;
- self->priv->regs = (*_regs) = (_tmp1_ = g_hash_table_new_full (g_int_hash, g_int_equal, __lambda4__gdestroy_notify, __lambda5__gdestroy_notify), ((*_regs) == NULL) ? NULL : ((*_regs) = (g_hash_table_unref ((*_regs)), NULL)), _tmp1_);
- _tmp2_ = NULL;
- self->priv->groups_map = (_tmp2_ = g_hash_table_new (g_str_hash, g_str_equal), (self->priv->groups_map == NULL) ? NULL : (self->priv->groups_map = (g_hash_table_unref (self->priv->groups_map), NULL)), _tmp2_);
- _tmp3_ = NULL;
- self->priv->enums_map = (_tmp3_ = g_hash_table_new_full (g_str_hash, g_str_equal, __lambda6__gdestroy_notify, __lambda7__gdestroy_notify), (self->priv->enums_map == NULL) ? NULL : (self->priv->enums_map = (g_hash_table_unref (self->priv->enums_map), NULL)), _tmp3_);
- _tmp4_ = NULL;
- self->priv->regs_last_map = (_tmp4_ = g_hash_table_new_full (g_str_hash, g_str_equal, __lambda8__gdestroy_notify, __lambda9__gdestroy_notify), (self->priv->regs_last_map == NULL) ? NULL : (self->priv->regs_last_map = (g_hash_table_unref (self->priv->regs_last_map), NULL)), _tmp4_);
+ self->priv->info = *_info = (_tmp0_ = g_hash_table_new_full (g_str_hash, g_str_equal, __lambda2__gdestroy_notify, __lambda3__gdestroy_notify), _g_hash_table_unref0 (*_info), _tmp0_);
+ self->priv->regs = *_regs = (_tmp1_ = g_hash_table_new_full (g_int_hash, g_int_equal, __lambda4__gdestroy_notify, __lambda5__gdestroy_notify), _g_hash_table_unref0 (*_regs), _tmp1_);
+ self->priv->groups_map = (_tmp2_ = g_hash_table_new (g_str_hash, g_str_equal), _g_hash_table_unref0 (self->priv->groups_map), _tmp2_);
+ self->priv->enums_map = (_tmp3_ = g_hash_table_new_full (g_str_hash, g_str_equal, __lambda6__gdestroy_notify, __lambda7__gdestroy_notify), _g_hash_table_unref0 (self->priv->enums_map), _tmp3_);
+ self->priv->regs_last_map = (_tmp4_ = g_hash_table_new_full (g_str_hash, g_str_equal, __lambda8__gdestroy_notify, __lambda9__gdestroy_notify), _g_hash_table_unref0 (self->priv->regs_last_map), _tmp4_);
return self;
}
@@ -2095,9 +2060,7 @@ static inline void emulation_spec_parser_index_groups (EmulationSpecParser* self
if (g_hash_table_lookup (self->priv->groups_map, name) != NULL) {
fprintf (stdout, "Warning: Found more than one group by the name of '%s'.\n", name);
} else {
- const char* _tmp1_;
- _tmp1_ = NULL;
- g_hash_table_insert (self->priv->groups_map, (_tmp1_ = name, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), iter);
+ g_hash_table_insert (self->priv->groups_map, g_strdup (name), iter);
}
}
}
@@ -2187,15 +2150,13 @@ static inline xmlNode* emulation_spec_parser_find_group (EmulationSpecParser* se
static inline EmulationBitfieldEnum* emulation_spec_parser_find_enum (EmulationSpecParser* self, const char* name) {
EmulationBitfieldEnum* result;
EmulationBitfieldEnum* e;
- EmulationBitfieldEnum* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (name != NULL, NULL);
e = (EmulationBitfieldEnum*) g_hash_table_lookup (self->priv->enums_map, name);
if (e == NULL) {
fprintf (stdout, "Warning: Trying to use non-existant enum '%s'\n", name);
}
- _tmp0_ = NULL;
- result = (_tmp0_ = e, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
+ result = _g_object_ref0 (e);
return result;
}
@@ -2318,7 +2279,7 @@ static void emulation_spec_parser_xmlparse_group (EmulationSpecParser* self, xml
}
}
}
- name = (g_free (name), NULL);
+ _g_free0 (name);
}
@@ -2420,7 +2381,7 @@ static void emulation_spec_parser_xmlparse_stripe (EmulationSpecParser* self, xm
}
}
}
- name = (g_free (name), NULL);
+ _g_free0 (name);
}
@@ -2432,6 +2393,11 @@ static guint* _uint_dup (guint* self) {
}
+static gpointer __uint_dup0 (gpointer self) {
+ return self ? _uint_dup (self) : NULL;
+}
+
+
static glong string_get_length (const char* self) {
glong result;
g_return_val_if_fail (self != NULL, 0L);
@@ -2442,56 +2408,41 @@ static glong string_get_length (const char* self) {
static void emulation_spec_parser_xmlparse_reg32 (EmulationSpecParser* self, xmlNode* node, guint offset, const char* _name) {
char* name;
- EmulationRegisterList* _tmp0_;
EmulationRegisterList* regarr;
- EmulationRegisterInfo* _tmp4_;
EmulationRegisterInfo* reginfo;
EmulationRegister* reg;
- guint _tmp11_;
- EmulationRegister* _tmp12_;
+ guint _tmp3_;
EmulationRegister* last_reg;
g_return_if_fail (self != NULL);
g_return_if_fail (_name != NULL);
name = g_strconcat (_name, emulation_spec_parser_get_single_attrib (self, node, "name"), NULL);
offset = offset + ((guint) strtoul (emulation_spec_parser_get_single_attrib (self, node, "offset"), NULL, 0));
- _tmp0_ = NULL;
- regarr = (_tmp0_ = (EmulationRegisterList*) g_hash_table_lookup (self->priv->regs, &offset), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
+ regarr = _g_object_ref0 ((EmulationRegisterList*) g_hash_table_lookup (self->priv->regs, &offset));
if (regarr == NULL) {
- guint* _tmp1_;
- EmulationRegisterList* _tmp3_;
- EmulationRegisterList* _tmp2_;
- _tmp1_ = NULL;
- g_hash_table_insert (self->priv->regs, (_tmp1_ = &offset, (_tmp1_ == NULL) ? NULL : _uint_dup (_tmp1_)), emulation_register_list_new ());
- _tmp3_ = NULL;
- _tmp2_ = NULL;
- regarr = (_tmp3_ = (_tmp2_ = (EmulationRegisterList*) g_hash_table_lookup (self->priv->regs, &offset), (_tmp2_ == NULL) ? NULL : g_object_ref (_tmp2_)), (regarr == NULL) ? NULL : (regarr = (g_object_unref (regarr), NULL)), _tmp3_);
- }
- _tmp4_ = NULL;
- reginfo = (_tmp4_ = (EmulationRegisterInfo*) g_hash_table_lookup (self->priv->info, name), (_tmp4_ == NULL) ? NULL : g_object_ref (_tmp4_));
+ EmulationRegisterList* _tmp0_;
+ g_hash_table_insert (self->priv->regs, __uint_dup0 (&offset), emulation_register_list_new ());
+ regarr = (_tmp0_ = _g_object_ref0 ((EmulationRegisterList*) g_hash_table_lookup (self->priv->regs, &offset)), _g_object_unref0 (regarr), _tmp0_);
+ }
+ reginfo = _g_object_ref0 ((EmulationRegisterInfo*) g_hash_table_lookup (self->priv->info, name));
if (reginfo == NULL) {
EmulationRegisterInfo* ri;
- const char* _tmp5_;
char* access;
- EmulationRegisterInfo* _tmp8_;
- const char* _tmp7_;
- EmulationRegisterInfo* _tmp10_;
- EmulationRegisterInfo* _tmp9_;
+ EmulationRegisterInfo* _tmp2_;
ri = emulation_register_info_new ();
emulation_register_info_set_name (ri, name);
emulation_register_info_set_addr (ri, offset);
- _tmp5_ = NULL;
- access = (_tmp5_ = emulation_spec_parser_get_single_attrib (self, node, "access"), (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_));
+ access = g_strdup (emulation_spec_parser_get_single_attrib (self, node, "access"));
{
gint i;
i = 0;
{
- gboolean _tmp6_;
- _tmp6_ = TRUE;
+ gboolean _tmp1_;
+ _tmp1_ = TRUE;
while (TRUE) {
- if (!_tmp6_) {
+ if (!_tmp1_) {
i++;
}
- _tmp6_ = FALSE;
+ _tmp1_ = FALSE;
if (!(i < string_get_length (access))) {
break;
}
@@ -2512,50 +2463,37 @@ static void emulation_spec_parser_xmlparse_reg32 (EmulationSpecParser* self, xml
}
}
}
- _tmp8_ = NULL;
- _tmp7_ = NULL;
- g_hash_table_insert (self->priv->info, (_tmp7_ = name, (_tmp7_ == NULL) ? NULL : g_strdup (_tmp7_)), (_tmp8_ = ri, (_tmp8_ == NULL) ? NULL : g_object_ref (_tmp8_)));
- _tmp10_ = NULL;
- _tmp9_ = NULL;
- reginfo = (_tmp10_ = (_tmp9_ = (EmulationRegisterInfo*) g_hash_table_lookup (self->priv->info, name), (_tmp9_ == NULL) ? NULL : g_object_ref (_tmp9_)), (reginfo == NULL) ? NULL : (reginfo = (g_object_unref (reginfo), NULL)), _tmp10_);
- (ri == NULL) ? NULL : (ri = (g_object_unref (ri), NULL));
- access = (g_free (access), NULL);
+ g_hash_table_insert (self->priv->info, g_strdup (name), _g_object_ref0 (ri));
+ reginfo = (_tmp2_ = _g_object_ref0 ((EmulationRegisterInfo*) g_hash_table_lookup (self->priv->info, name)), _g_object_unref0 (reginfo), _tmp2_);
+ _g_object_unref0 (ri);
+ _g_free0 (access);
}
reg = emulation_register_new ();
emulation_register_set_addr (reg, offset);
- emulation_register_set_num (reg, (_tmp11_ = emulation_register_info_get_count (reginfo), emulation_register_info_set_count (reginfo, _tmp11_ + 1), _tmp11_));
+ emulation_register_set_num (reg, (_tmp3_ = emulation_register_info_get_count (reginfo), emulation_register_info_set_count (reginfo, _tmp3_ + 1), _tmp3_));
emulation_register_set_info (reg, reginfo);
emulation_register_set_prev (reg, NULL);
emulation_register_set_next (reg, NULL);
emulation_register_list_append (regarr, reg);
- _tmp12_ = NULL;
- last_reg = (_tmp12_ = (EmulationRegister*) g_hash_table_lookup (self->priv->regs_last_map, name), (_tmp12_ == NULL) ? NULL : g_object_ref (_tmp12_));
+ last_reg = _g_object_ref0 ((EmulationRegister*) g_hash_table_lookup (self->priv->regs_last_map, name));
if (last_reg == NULL) {
- EmulationRegister* _tmp14_;
- const char* _tmp13_;
- _tmp14_ = NULL;
- _tmp13_ = NULL;
- g_hash_table_insert (self->priv->regs_last_map, (_tmp13_ = name, (_tmp13_ == NULL) ? NULL : g_strdup (_tmp13_)), (_tmp14_ = reg, (_tmp14_ == NULL) ? NULL : g_object_ref (_tmp14_)));
+ g_hash_table_insert (self->priv->regs_last_map, g_strdup (name), _g_object_ref0 (reg));
} else {
- EmulationRegister* _tmp16_;
- const char* _tmp15_;
emulation_register_set_next (last_reg, reg);
emulation_register_set_prev (reg, last_reg);
- _tmp16_ = NULL;
- _tmp15_ = NULL;
- g_hash_table_replace (self->priv->regs_last_map, (_tmp15_ = name, (_tmp15_ == NULL) ? NULL : g_strdup (_tmp15_)), (_tmp16_ = reg, (_tmp16_ == NULL) ? NULL : g_object_ref (_tmp16_)));
+ g_hash_table_replace (self->priv->regs_last_map, g_strdup (name), _g_object_ref0 (reg));
}
{
xmlNode* iter;
iter = node->children;
{
- gboolean _tmp17_;
- _tmp17_ = TRUE;
+ gboolean _tmp4_;
+ _tmp4_ = TRUE;
while (TRUE) {
- if (!_tmp17_) {
+ if (!_tmp4_) {
iter = iter->next;
}
- _tmp17_ = FALSE;
+ _tmp4_ = FALSE;
if (!(iter != NULL)) {
break;
}
@@ -2567,10 +2505,9 @@ static void emulation_spec_parser_xmlparse_reg32 (EmulationSpecParser* self, xml
} else {
if (_vala_strcmp0 (iter->name, "doc") == 0) {
if (emulation_register_info_get_doc (reginfo) == NULL) {
- char* _tmp18_;
- _tmp18_ = NULL;
- emulation_register_info_set_doc (reginfo, _tmp18_ = xmlNodeGetContent (iter));
- _tmp18_ = (g_free (_tmp18_), NULL);
+ char* _tmp5_;
+ emulation_register_info_set_doc (reginfo, _tmp5_ = xmlNodeGetContent (iter));
+ _g_free0 (_tmp5_);
}
} else {
fprintf (stdout, "Warning: Unknown rules-ng tag '%s' in reg32.\n", iter->name);
@@ -2579,36 +2516,33 @@ static void emulation_spec_parser_xmlparse_reg32 (EmulationSpecParser* self, xml
}
}
}
- name = (g_free (name), NULL);
- (regarr == NULL) ? NULL : (regarr = (g_object_unref (regarr), NULL));
- (reginfo == NULL) ? NULL : (reginfo = (g_object_unref (reginfo), NULL));
- (reg == NULL) ? NULL : (reg = (g_object_unref (reg), NULL));
- (last_reg == NULL) ? NULL : (last_reg = (g_object_unref (last_reg), NULL));
+ _g_free0 (name);
+ _g_object_unref0 (regarr);
+ _g_object_unref0 (reginfo);
+ _g_object_unref0 (reg);
+ _g_object_unref0 (last_reg);
}
static void emulation_spec_parser_xmlparse_enum (EmulationSpecParser* self, xmlNode* node) {
const char* name;
- const char* _tmp0_;
- EmulationBitfieldEnum* _tmp1_;
+ EmulationBitfieldEnum* _tmp0_;
EmulationBitfieldEnum* enu;
g_return_if_fail (self != NULL);
name = emulation_spec_parser_get_single_attrib (self, node, "name");
- _tmp0_ = NULL;
- g_hash_table_insert (self->priv->enums_map, (_tmp0_ = name, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), emulation_bitfield_enum_new ());
- _tmp1_ = NULL;
- enu = (_tmp1_ = (EmulationBitfieldEnum*) g_hash_table_lookup (self->priv->enums_map, name), EMULATION_IS_BITFIELD_ENUM (_tmp1_) ? ((EmulationBitfieldEnum*) _tmp1_) : NULL);
+ g_hash_table_insert (self->priv->enums_map, g_strdup (name), emulation_bitfield_enum_new ());
+ enu = (_tmp0_ = (EmulationBitfieldEnum*) g_hash_table_lookup (self->priv->enums_map, name), EMULATION_IS_BITFIELD_ENUM (_tmp0_) ? ((EmulationBitfieldEnum*) _tmp0_) : NULL);
{
xmlNode* iter;
iter = node->children;
{
- gboolean _tmp2_;
- _tmp2_ = TRUE;
+ gboolean _tmp1_;
+ _tmp1_ = TRUE;
while (TRUE) {
- if (!_tmp2_) {
+ if (!_tmp1_) {
iter = iter->next;
}
- _tmp2_ = FALSE;
+ _tmp1_ = FALSE;
if (!(iter != NULL)) {
break;
}
@@ -2655,24 +2589,21 @@ static void emulation_spec_parser_xmlparse_bitfield (EmulationSpecParser* self,
if (_vala_strcmp0 (iter->name, "value") == 0) {
if (emulation_bitfield_get_enu (b) == NULL) {
EmulationBitfieldEnum* _tmp1_;
- _tmp1_ = NULL;
emulation_bitfield_set_enu (b, _tmp1_ = emulation_bitfield_enum_new ());
- (_tmp1_ == NULL) ? NULL : (_tmp1_ = (g_object_unref (_tmp1_), NULL));
+ _g_object_unref0 (_tmp1_);
}
emulation_spec_parser_xmlparse_value (self, iter, emulation_bitfield_get_enu (b));
} else {
if (_vala_strcmp0 (iter->name, "use-enum") == 0) {
EmulationBitfieldEnum* _tmp2_;
- _tmp2_ = NULL;
emulation_bitfield_set_enu (b, _tmp2_ = emulation_spec_parser_find_enum (self, emulation_spec_parser_get_single_attrib (self, iter, "ref")));
- (_tmp2_ == NULL) ? NULL : (_tmp2_ = (g_object_unref (_tmp2_), NULL));
+ _g_object_unref0 (_tmp2_);
} else {
if (_vala_strcmp0 (iter->name, "doc") == 0) {
if (emulation_bitfield_get_doc (b) == NULL) {
char* _tmp3_;
- _tmp3_ = NULL;
emulation_bitfield_set_doc (b, _tmp3_ = xmlNodeGetContent (iter));
- _tmp3_ = (g_free (_tmp3_), NULL);
+ _g_free0 (_tmp3_);
}
} else {
fprintf (stdout, "Warning: Unknown rules-ng tag '%s' in bitfield.\n", iter->name);
@@ -2683,7 +2614,7 @@ static void emulation_spec_parser_xmlparse_bitfield (EmulationSpecParser* self,
}
}
emulation_register_info_append (reginfo, b);
- (b == NULL) ? NULL : (b = (g_object_unref (b), NULL));
+ _g_object_unref0 (b);
}
@@ -2711,9 +2642,8 @@ static void emulation_spec_parser_xmlparse_value (EmulationSpecParser* self, xml
}
if (_vala_strcmp0 (iter->name, "doc") == 0) {
char* _tmp1_;
- _tmp1_ = NULL;
emulation_bitfield_value_set_doc (v, _tmp1_ = xmlNodeGetContent (iter));
- _tmp1_ = (g_free (_tmp1_), NULL);
+ _g_free0 (_tmp1_);
} else {
fprintf (stdout, "Warning: Unknown rules-ng tag '%s' in value.\n", iter->name);
}
@@ -2721,7 +2651,7 @@ static void emulation_spec_parser_xmlparse_value (EmulationSpecParser* self, xml
}
}
emulation_bitfield_enum_append (enu, v);
- (v == NULL) ? NULL : (v = (g_object_unref (v), NULL));
+ _g_object_unref0 (v);
}
@@ -2834,9 +2764,9 @@ static void emulation_spec_parser_instance_init (EmulationSpecParser * self) {
static void emulation_spec_parser_finalize (EmulationSpecParser* obj) {
EmulationSpecParser * self;
self = EMULATION_SPEC_PARSER (obj);
- (self->priv->groups_map == NULL) ? NULL : (self->priv->groups_map = (g_hash_table_unref (self->priv->groups_map), NULL));
- (self->priv->enums_map == NULL) ? NULL : (self->priv->enums_map = (g_hash_table_unref (self->priv->enums_map), NULL));
- (self->priv->regs_last_map == NULL) ? NULL : (self->priv->regs_last_map = (g_hash_table_unref (self->priv->regs_last_map), NULL));
+ _g_hash_table_unref0 (self->priv->groups_map);
+ _g_hash_table_unref0 (self->priv->enums_map);
+ _g_hash_table_unref0 (self->priv->regs_last_map);
}
@@ -2878,24 +2808,22 @@ gboolean emulation_spec_load_xml (EmulationSpec* self, const char* filename, con
g_return_val_if_fail (variant != NULL, FALSE);
xml = emulation_spec_parser_new (&self->priv->info, &self->priv->regs);
result = emulation_spec_parser_parse (xml, filename, variant);
- (xml == NULL) ? NULL : (xml = (emulation_spec_parser_unref (xml), NULL));
+ _emulation_spec_parser_unref0 (xml);
return result;
}
EmulationRegisterList* emulation_spec_translate_addr (EmulationSpec* self, guint addr) {
EmulationRegisterList* result;
- EmulationRegisterList* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
- _tmp0_ = NULL;
- result = (_tmp0_ = (EmulationRegisterList*) g_hash_table_lookup (self->priv->regs, &addr), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_));
+ result = _g_object_ref0 ((EmulationRegisterList*) g_hash_table_lookup (self->priv->regs, &addr));
return result;
}
EmulationSpec* emulation_spec_construct (GType object_type) {
EmulationSpec * self;
- self = g_object_newv (object_type, 0, NULL);
+ self = (EmulationSpec*) g_object_new (object_type, NULL);
return self;
}
@@ -2920,8 +2848,8 @@ static void emulation_spec_instance_init (EmulationSpec * self) {
static void emulation_spec_finalize (GObject* obj) {
EmulationSpec * self;
self = EMULATION_SPEC (obj);
- (self->priv->info == NULL) ? NULL : (self->priv->info = (g_hash_table_unref (self->priv->info), NULL));
- (self->priv->regs == NULL) ? NULL : (self->priv->regs = (g_hash_table_unref (self->priv->regs), NULL));
+ _g_hash_table_unref0 (self->priv->info);
+ _g_hash_table_unref0 (self->priv->regs);
G_OBJECT_CLASS (emulation_spec_parent_class)->finalize (obj);
}