summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2019-10-01 20:49:03 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2019-10-01 20:49:03 (GMT)
commit42d32a8c729e4fc0d8b1f3cf18ce870d55f59e26 (patch)
tree7fb6a8da30304f05e57af59d47a1d2b11dd5ab24
parent7602124306e5abdfba17106d7e52d8c58ac939e7 (diff)
Extended the Python API for database items.
-rw-r--r--plugins/pychrysalide/analysis/db/item.c47
-rw-r--r--plugins/pychrysalide/format/symbol.c2
2 files changed, 47 insertions, 2 deletions
diff --git a/plugins/pychrysalide/analysis/db/item.c b/plugins/pychrysalide/analysis/db/item.c
index 7ef30af..fe51752 100644
--- a/plugins/pychrysalide/analysis/db/item.c
+++ b/plugins/pychrysalide/analysis/db/item.c
@@ -54,6 +54,16 @@ static PyObject *py_db_item_get_timestamp(PyObject *, void *);
/* Indique les propriétés particulières appliquées à l'élément. */
static PyObject *py_db_item_get_flags(PyObject *, void *);
+/* Applique un ensemble de propriétés à un élément. */
+static int py_db_item_set_flags(PyObject *, PyObject *, void *);
+
+
+
+#define DB_ITEM_DOC \
+ "DbItem handles all kinds of updates applied to the disassebled code." \
+ "\n" \
+ "These items are managed using a client/server model."
+
/******************************************************************************
@@ -231,7 +241,7 @@ static PyObject *py_db_item_get_flags(PyObject *self, void *closure)
GDbItem *item; /* Elément à consulter */
DbItemFlags flags; /* Propriétés de l'élément */
-#define DB_ITEM_FLAGS_ATTRIB PYTHON_GET_DEF_FULL \
+#define DB_ITEM_FLAGS_ATTRIB PYTHON_GETSET_DEF_FULL \
( \
flags, py_db_item, \
"Properties of the database item, provided as a mask" \
@@ -251,6 +261,39 @@ static PyObject *py_db_item_get_flags(PyObject *self, void *closure)
/******************************************************************************
* *
+* Paramètres : self = objet Python concerné par l'appel. *
+* value = valeur fournie à intégrer ou prendre en compte. *
+* closure = adresse non utilisée ici. *
+* *
+* Description : Applique un ensemble de propriétés à un élément. *
+* *
+* Retour : Bilan de l'opération. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static int py_db_item_set_flags(PyObject *self, PyObject *value, void *closure)
+{
+ GDbItem *item; /* Elément à consulter */
+ DbItemFlags flags; /* Propriétés d'élément */
+
+ if (!PyLong_Check(value))
+ return -1;
+
+ item = G_DB_ITEM(pygobject_get(self));
+
+ flags = PyLong_AsUnsignedLong(value);
+
+ g_db_item_set_flags(item, flags);
+
+ return 0;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : - *
* *
* Description : Fournit un accès à une définition de type à diffuser. *
@@ -285,7 +328,7 @@ PyTypeObject *get_python_db_item_type(void)
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
- .tp_doc = "PyChrysalide item for DataBase collection",
+ .tp_doc = DB_ITEM_DOC,
.tp_methods = py_db_item_methods,
.tp_getset = py_db_item_getseters,
diff --git a/plugins/pychrysalide/format/symbol.c b/plugins/pychrysalide/format/symbol.c
index a88a260..873510d 100644
--- a/plugins/pychrysalide/format/symbol.c
+++ b/plugins/pychrysalide/format/symbol.c
@@ -469,6 +469,7 @@ static int py_binary_symbol_set_stype(PyObject *self, PyObject *value, void *clo
return -1;
symbol = G_BIN_SYMBOL(pygobject_get(self));
+
type = PyLong_AsUnsignedLong(value);
g_binary_symbol_set_stype(symbol, type);
@@ -537,6 +538,7 @@ static int py_binary_symbol_set_status(PyObject *self, PyObject *value, void *cl
return -1;
symbol = G_BIN_SYMBOL(pygobject_get(self));
+
status = PyLong_AsUnsignedLong(value);
g_binary_symbol_set_status(symbol, status);