projects
/
emu8051.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add option no-define to AM_INIT_AUTOMAKE
[emu8051.git]
/
src
/
gtk
/
regwin.c
diff --git
a/src/gtk/regwin.c
b/src/gtk/regwin.c
index
0b027a5
..
d3fcb8d
100644
(file)
--- a/
src/gtk/regwin.c
+++ b/
src/gtk/regwin.c
@@
-30,8
+30,7
@@
static GtkWidget *reglist;
#define LIST_VIEW_NAME "Registers"
#define DATA_ROWS SFR_REGS
#define LIST_VIEW_NAME "Registers"
#define DATA_ROWS SFR_REGS
-enum
-{
+enum {
COL_NAME = 0,
COL_VAL,
N_COLUMNS,
COL_NAME = 0,
COL_VAL,
N_COLUMNS,
@@
-73,12
+72,11
@@
regwin_cell_edited(GtkCellRendererText *cell, gchar *path_string,
(void) cell; /* Remove compiler warning about unused variables. */
(void) cell; /* Remove compiler warning about unused variables. */
- if (!model) {
- g_error("Unable to get model from cell renderer");
- }
+ if (!model)
+ log_err("Unable to get model from cell renderer");
/* Get the iterator */
/* Get the iterator */
-
gtk_tree_model_get_iter_from_string(model, &iter, path_string);
+ gtk_tree_model_get_iter_from_string(model, &iter, path_string);
/* Get register name. */
gtk_tree_model_get(model, &iter, COL_NAME, &str, -1);
/* Get register name. */
gtk_tree_model_get(model, &iter, COL_NAME, &str, -1);
@@
-90,10
+88,16
@@
regwin_cell_edited(GtkCellRendererText *cell, gchar *path_string,
/* Read current (old) value. */
gtk_tree_model_get(model, &iter, COL_VAL, &str, -1);
/* Read current (old) value. */
gtk_tree_model_get(model, &iter, COL_VAL, &str, -1);
+ /* No need to check error, has already been validated. */
old = asciihex2int(str);
log_info(" old value: $%04X", old);
new = asciihex2int(new_str);
old = asciihex2int(str);
log_info(" old value: $%04X", old);
new = asciihex2int(new_str);
+ if (asciihex2int_get_error()) {
+ log_warn(" new value: invalid");
+ return;
+ }
+
log_info(" new value: $%04X", new);
/* Store new value in emulator register (if in range). */
log_info(" new value: $%04X", new);
/* Store new value in emulator register (if in range). */
@@
-101,13
+105,14
@@
regwin_cell_edited(GtkCellRendererText *cell, gchar *path_string,
if (rc == 0) {
/* Store new value in gtk model. */
int2asciihex(new, str, regwin_infos->w);
if (rc == 0) {
/* Store new value in gtk model. */
int2asciihex(new, str, regwin_infos->w);
- gtk_list_store_set(GTK_LIST_STORE(model), &iter, COL_VAL, str, -1);
+ gtk_list_store_set(GTK_LIST_STORE(model), &iter, COL_VAL, str,
+ -1);
/*
* Make sure to update all windows.
* For example, R0-R7 values depends on internal memory values.
*/
/*
* Make sure to update all windows.
* For example, R0-R7 values depends on internal memory values.
*/
- emugtk_
UpdateD
isplay();
+ emugtk_
update_d
isplay();
}
};
}
};