From 2b147fc1a6c8185d72ad84a732a1d9f61a072301 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Michel=20Vourg=C3=A8re?= Date: Tue, 30 Aug 2011 16:13:15 -0400 Subject: [PATCH] Fix end of loop detection in gmdb_val_to_str --- src/gmdb2/debug.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/gmdb2/debug.c b/src/gmdb2/debug.c index 160e83d..209bd17 100644 --- a/src/gmdb2/debug.c +++ b/src/gmdb2/debug.c @@ -326,7 +326,6 @@ gmdb_debug_display(GladeXML *xml, guint32 page) { char *fbuf; char *tbuf; - int length; int i, j; char line[80]; char field[10]; @@ -347,15 +346,13 @@ gmdb_debug_display(GladeXML *xml, guint32 page) gtk_entry_set_text(GTK_ENTRY(entry),pagestr); g_free(pagestr); - lseek(mdb->f->fd, page * mdb->fmt->pg_size, SEEK_SET); - + mdb_read_pg(mdb, page); fbuf = g_malloc(mdb->fmt->pg_size); - tbuf = g_malloc0( (mdb->fmt->pg_size / 16) * 80); - length = read(mdb->f->fd, fbuf, mdb->fmt->pg_size); - if (lengthfmt->pg_size) { - } + memcpy(fbuf, mdb->pg_buf, mdb->fmt->pg_size); + + tbuf = g_malloc0( (mdb->fmt->pg_size / 16) * sizeof(line)); i = 0; - while (ifmt->pg_size) { sprintf(line,"%06x ", i); for(j=0; j<16; j++) { @@ -383,7 +380,7 @@ gmdb_debug_display(GladeXML *xml, guint32 page) window = glade_xml_get_widget(xml, "debug_window"); dissect = g_object_get_data(G_OBJECT(window),"dissect"); if (!dissect || *dissect) - gmdb_debug_dissect(GTK_TREE_STORE(store), fbuf, 0, length); + gmdb_debug_dissect(GTK_TREE_STORE(store), fbuf, 0, mdb->fmt->pg_size); g_free(fbuf); g_free(tbuf); @@ -409,7 +406,7 @@ int i = 0; return strptr; } i++; - } while (*strptr); + } while (strptr); return "unknown"; } static guint16