summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2019-09-12 17:47:59 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2019-09-12 17:47:59 (GMT)
commit607a867355b2ffe09a76f3b4ea8dbc4be1dc477f (patch)
treef0f41e5d10c138c3b4783fc12057af7ac0d1862c /src
parent1c2949f6828b995c7b9f8feba8fd7214f52f8f4d (diff)
Replaced some database item properties by new flags.
Diffstat (limited to 'src')
-rw-r--r--src/analysis/binary.c4
-rw-r--r--src/analysis/db/item-int.h4
-rw-r--r--src/analysis/db/item.c44
-rw-r--r--src/analysis/db/item.h12
4 files changed, 10 insertions, 54 deletions
diff --git a/src/analysis/binary.c b/src/analysis/binary.c
index 070e175..ac7556c 100644
--- a/src/analysis/binary.c
+++ b/src/analysis/binary.c
@@ -1077,7 +1077,7 @@ bool _g_loaded_binary_add_to_collection(GLoadedBinary *binary, GDbItem *item, bo
if (collec == NULL) return false;
/* S'il n'y a pas besoin de sauvegarde... */
- if (g_db_item_is_volatile(item))
+ if (g_db_item_get_flags(item) & DIF_VOLATILE)
result = _g_db_collection_add_item(collec, item, lock);
/* Sinon on envoie par le réseau ! */
@@ -1158,7 +1158,7 @@ bool _g_loaded_binary_remove_from_collection(GLoadedBinary *binary, DBFeatures f
if (collec == NULL) return false;
/* S'il n'y a pas besoin de sauvegarde... */
- if (g_db_item_is_volatile(item))
+ if (g_db_item_get_flags(item) & DIF_VOLATILE)
result = _g_db_collection_remove_item(collec, item, lock, true);
/* Sinon on envoie par le réseau ! */
diff --git a/src/analysis/db/item-int.h b/src/analysis/db/item-int.h
index e530442..bdaf38e 100644
--- a/src/analysis/db/item-int.h
+++ b/src/analysis/db/item-int.h
@@ -76,10 +76,6 @@ struct _GDbItem
};
- bool is_volatile; /* Pas besoin de sauvegarde ? */
-
- bool broken; /* Changement applicable ? */
-
};
/* Base d'un élément pour collection générique (classe) */
diff --git a/src/analysis/db/item.c b/src/analysis/db/item.c
index 227d99f..a403537 100644
--- a/src/analysis/db/item.c
+++ b/src/analysis/db/item.c
@@ -118,7 +118,7 @@ static void g_db_item_init(GDbItem *item)
{
set_static_rle_string(&item->author, "");
- item->is_volatile = false;
+ g_atomic_int_set(&item->atomic_flags, DIF_NONE);
}
@@ -420,6 +420,9 @@ bool g_db_item_apply(GDbItem *item, GLoadedBinary *binary)
result = G_DB_ITEM_GET_CLASS(item)->apply(item, binary);
+ if (!result)
+ g_db_item_add_flag(item, DIF_BROKEN);
+
return result;
}
@@ -569,45 +572,6 @@ bool g_db_item_is_active(const GDbItem *item)
/******************************************************************************
* *
-* Paramètres : item = base d'éléments à modifier. *
-* is_volatile = état du besoin en sauvegarde. *
-* *
-* Description : Définit si l'élément contient des données à oublier ou non. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void g_db_item_set_volatile(GDbItem *item, bool is_volatile)
-{
- item->is_volatile = is_volatile;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : item = base d'éléments à consulter. *
-* *
-* Description : Indique si l'élément contient des données à oublier ou non. *
-* *
-* Retour : Etat du besoin en sauvegarde. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-bool g_db_item_is_volatile(const GDbItem *item)
-{
- return item->is_volatile;
-
-}
-
-
-/******************************************************************************
-* *
* Paramètres : item = base d'éléments à mettre à jour. *
* flag = type de propriété à traiter. *
* *
diff --git a/src/analysis/db/item.h b/src/analysis/db/item.h
index 383f9ed..fc6475e 100644
--- a/src/analysis/db/item.h
+++ b/src/analysis/db/item.h
@@ -43,8 +43,10 @@ typedef struct _GLoadedBinary GLoadedBinary;
/* Propriétés particulières pour un élément */
typedef enum _DbItemFlags
{
- DIF_NONE = (0 << 0), /* Propriétés par défaut */
- DIF_ERASER = (1 << 0), /* Suppression de l'effet */
+ DIF_NONE = (0 << 0), /* Propriétés par défaut */
+ DIF_ERASER = (1 << 0), /* Suppression de l'effet */
+ DIF_VOLATILE = (1 << 1), /* Abscence de sauvegarde */
+ DIF_BROKEN = (1 << 2), /* Application impossible */
} DbItemFlags;
@@ -106,12 +108,6 @@ bool g_db_item_set_activity(GDbItem *, GLoadedBinary *, timestamp_t *);
/* Indique si l'élément est activé ou désactivé. */
bool g_db_item_is_active(const GDbItem *);
-/* Définit si l'élément contient des données à oublier ou non. */
-void g_db_item_set_volatile(GDbItem *, bool);
-
-/* Indique si l'élément contient des données à oublier ou non. */
-bool g_db_item_is_volatile(const GDbItem *);
-
/* Ajoute une propriété à un élément de base de données. */
void g_db_item_add_flag(GDbItem *, DbItemFlags);