summaryrefslogtreecommitdiff
path: root/src/analysis/db/items/move.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/db/items/move.c')
-rw-r--r--src/analysis/db/items/move.c80
1 files changed, 46 insertions, 34 deletions
diff --git a/src/analysis/db/items/move.c b/src/analysis/db/items/move.c
index 6929ec3..286215b 100644
--- a/src/analysis/db/items/move.c
+++ b/src/analysis/db/items/move.c
@@ -95,12 +95,12 @@ static bool g_db_move_apply(GDbMove *, GLoadedBinary *);
/* Annule un déplacement au sein d'une zone de code. */
static bool g_db_move_cancel(GDbMove *, GLoadedBinary *);
-/* Constitue les champs destinés à une insertion / modification. */
-static bool g_db_move_prepare_db_statement(const GDbMove *, bound_value **, size_t *);
-
/* Charge les valeurs utiles pour un déplacement dans du code. */
static bool g_db_move_load(GDbMove *, const bound_value *, size_t);
+/* Constitue les champs destinés à une insertion / modification. */
+static bool g_db_move_store(const GDbMove *, bound_value **, size_t *);
+
/* ---------------------- DEFINITION DE LA COLLECTION ASSOCIEE ---------------------- */
@@ -188,8 +188,8 @@ static void g_db_move_class_init(GDbMoveClass *klass)
item->apply = (run_item_fc)g_db_move_apply;
item->cancel = (run_item_fc)g_db_move_cancel;
- item->prepare_stmt = (prepare_db_statement)g_db_move_prepare_db_statement;
item->load = (load_db_item_fc)g_db_move_load;
+ item->store = (store_db_item_fc)g_db_move_store;
}
@@ -455,7 +455,7 @@ static bool g_db_move_run(const GDbMove *move, GLineCursor *cursor)
if (G_IS_LOADED_PANEL(panel))
{
- params = (move_params *)calloc(1, sizeof(move_params));
+ params = calloc(1, sizeof(move_params));
params->panel = panel;
params->cursor = cursor;
@@ -527,63 +527,75 @@ static bool g_db_move_cancel(GDbMove *move, GLoadedBinary *binary)
/******************************************************************************
* *
-* Paramètres : move = base d'éléments sur laquelle s'appuyer. *
-* values = couples de champs et de valeurs à lier. [OUT] *
-* count = nombre de ces couples. [OUT] *
+* Paramètres : move = bascule d'affichage à charger depuis les réponses. *
+* values = tableau d'éléments à consulter. *
+* count = nombre de descriptions renseignées. *
* *
-* Description : Constitue les champs destinés à une insertion / modification.*
+* Description : Charge les valeurs utiles pour un déplacement dans du code. *
* *
-* Retour : Etat du besoin en sauvegarde. *
+* Retour : Bilan de l'opération. *
* *
* Remarques : - *
* *
******************************************************************************/
-static bool g_db_move_prepare_db_statement(const GDbMove *move, bound_value **values, size_t *count)
+static bool g_db_move_load(GDbMove *move, const bound_value *values, size_t count)
{
- bool status; /* Bilan d'opération initiale */
+ bool result; /* Bilan à faire remonter */
- status = G_DB_ITEM_CLASS(g_db_move_parent_class)->prepare_stmt(G_DB_ITEM(move), values, count);
- if (!status) return false;
+ result = G_DB_ITEM_CLASS(g_db_move_parent_class)->load(G_DB_ITEM(move), values, count);
- status = g_line_cursor_prepare_db_statement(move->src, "src", values, count);
- if (!status) return false;
+ if (result)
+ result = g_line_cursor_load(move->src, "src", values, count);
- status = g_line_cursor_prepare_db_statement(move->src, "dest", values, count);
- if (!status) return false;
+ if (result)
+ result = g_line_cursor_load(move->dest, "dest", values, count);
- return true;
+ return result;
}
/******************************************************************************
* *
-* Paramètres : move = bascule d'affichage à charger depuis les réponses. *
-* values = tableau d'éléments à consulter. *
-* count = nombre de descriptions renseignées. *
+* Paramètres : move = base d'éléments sur laquelle s'appuyer. *
+* values = couples de champs et de valeurs à lier. [OUT] *
+* count = nombre de ces couples. [OUT] *
* *
-* Description : Charge les valeurs utiles pour un déplacement dans du code. *
+* Description : Constitue les champs destinés à une insertion / modification.*
* *
-* Retour : Bilan de l'opération. *
+* Retour : Etat du besoin en sauvegarde. *
* *
* Remarques : - *
* *
******************************************************************************/
-static bool g_db_move_load(GDbMove *move, const bound_value *values, size_t count)
+static bool g_db_move_store(const GDbMove *move, bound_value **values, size_t *count)
{
- bool result; /* Bilan à faire remonter */
+ bool status; /* Bilan d'opération initiale */
- result = G_DB_ITEM_CLASS(g_db_move_parent_class)->load(G_DB_ITEM(move), values, count);
+ if (move == NULL)
+ status = G_DB_ITEM_CLASS(g_db_move_parent_class)->store(NULL, values, count);
+ else
+ status = G_DB_ITEM_CLASS(g_db_move_parent_class)->store(G_DB_ITEM(move), values, count);
- if (result)
- result = g_line_cursor_load(move->src, "src", values, count);
+ if (!status) return false;
- if (result)
- result = g_line_cursor_load(move->dest, "dest", values, count);
+ if (move == NULL)
+ status = g_line_cursor_setup_load(move->src, "src", values, count);
+ else
+ status = g_line_cursor_store(move->src, "src", values, count);
- return result;
+ if (!status) return false;
+
+ if (move == NULL)
+ status = g_line_cursor_setup_load(move->dest, "dest", values, count);
+ else
+ status = g_line_cursor_store(move->dest, "dest", values, count);
+
+ if (!status) return false;
+
+ return true;
}
@@ -783,10 +795,10 @@ static bool g_move_collection_setup_load(GMoveCollection *collec, bound_value **
values, count);
if (!status) return false;
- if (!g_binary_cursor_setup_load("src", values, count))
+ if (!g_binary_cursor_store(NULL, "src", values, count))
return false;
- if (!g_binary_cursor_setup_load("dest", values, count))
+ if (!g_binary_cursor_store(NULL, "dest", values, count))
return false;
return true;