From c951852890ce173c4d65450157d42127da2d061c Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Mon, 26 Nov 2018 19:18:35 +0100 Subject: Changed the Python module exporting endianness values. --- plugins/pychrysalide/arch/module.c | 52 ++++++++++++++++++++++++-------------- plugins/pychrysalide/arch/vmpa.c | 11 ++------ 2 files changed, 35 insertions(+), 28 deletions(-) diff --git a/plugins/pychrysalide/arch/module.c b/plugins/pychrysalide/arch/module.c index 009dc7b..8bd6df6 100644 --- a/plugins/pychrysalide/arch/module.c +++ b/plugins/pychrysalide/arch/module.c @@ -29,6 +29,7 @@ #include +#include #include "feeder.h" @@ -67,25 +68,38 @@ static bool py_base_define_constants(PyTypeObject *obj_type) result = true; - result &= PyDict_AddIntMacro(obj_type, MDS_UNDEFINED); - - result &= PyDict_AddIntMacro(obj_type, MDS_4_BITS_UNSIGNED); - result &= PyDict_AddIntMacro(obj_type, MDS_8_BITS_UNSIGNED); - result &= PyDict_AddIntMacro(obj_type, MDS_16_BITS_UNSIGNED); - result &= PyDict_AddIntMacro(obj_type, MDS_32_BITS_UNSIGNED); - result &= PyDict_AddIntMacro(obj_type, MDS_64_BITS_UNSIGNED); - - result &= PyDict_AddIntMacro(obj_type, MDS_4_BITS_SIGNED); - result &= PyDict_AddIntMacro(obj_type, MDS_8_BITS_SIGNED); - result &= PyDict_AddIntMacro(obj_type, MDS_16_BITS_SIGNED); - result &= PyDict_AddIntMacro(obj_type, MDS_32_BITS_SIGNED); - result &= PyDict_AddIntMacro(obj_type, MDS_64_BITS_SIGNED); - - result &= PyDict_AddIntMacro(obj_type, MDS_4_BITS); - result &= PyDict_AddIntMacro(obj_type, MDS_8_BITS); - result &= PyDict_AddIntMacro(obj_type, MDS_16_BITS); - result &= PyDict_AddIntMacro(obj_type, MDS_32_BITS); - result &= PyDict_AddIntMacro(obj_type, MDS_64_BITS); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_UNDEFINED); + + if (result) result = PyDict_AddIntMacro(obj_type, MDS_4_BITS_UNSIGNED); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_8_BITS_UNSIGNED); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_16_BITS_UNSIGNED); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_32_BITS_UNSIGNED); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_64_BITS_UNSIGNED); + + if (result) result = PyDict_AddIntMacro(obj_type, MDS_4_BITS_SIGNED); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_8_BITS_SIGNED); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_16_BITS_SIGNED); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_32_BITS_SIGNED); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_64_BITS_SIGNED); + + if (result) result = PyDict_AddIntMacro(obj_type, MDS_4_BITS); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_8_BITS); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_16_BITS); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_32_BITS); + if (result) result = PyDict_AddIntMacro(obj_type, MDS_64_BITS); + + /** + * Comme il existe déjà le module struct, de nouvelles primitives de + * lecture/écriture de données sensibles au boutisme sont inutiles dans Python. + * + * On choisit donc de ne pas créer de nouvelle entité dans le module Chrysalide + * pour exporter les constantes suivantes. + */ + + if (result) result = PyDict_AddIntMacro(obj_type, SRE_LITTLE); + if (result) result = PyDict_AddIntMacro(obj_type, SRE_LITTLE_WORD); + if (result) result = PyDict_AddIntMacro(obj_type, SRE_BIG_WORD); + if (result) result = PyDict_AddIntMacro(obj_type, SRE_BIG); return result; diff --git a/plugins/pychrysalide/arch/vmpa.c b/plugins/pychrysalide/arch/vmpa.c index abca73f..cdf20c9 100644 --- a/plugins/pychrysalide/arch/vmpa.c +++ b/plugins/pychrysalide/arch/vmpa.c @@ -39,7 +39,6 @@ -#include /* TODO : à bouger vers base ? */ @@ -536,14 +535,8 @@ static bool py_vmpa_define_constants(PyTypeObject *obj_type) result = true; - result &= PyDict_AddIntMacro(obj_type, VMPA_NO_PHYSICAL); - result &= PyDict_AddIntMacro(obj_type, VMPA_NO_VIRTUAL); - - /* TODO : à bouger vers base ? */ - result &= PyDict_AddIntMacro(obj_type, SRE_LITTLE); - result &= PyDict_AddIntMacro(obj_type, SRE_LITTLE_WORD); - result &= PyDict_AddIntMacro(obj_type, SRE_BIG_WORD); - result &= PyDict_AddIntMacro(obj_type, SRE_BIG); + if (result) result = PyDict_AddIntMacro(obj_type, VMPA_NO_PHYSICAL); + if (result) result = PyDict_AddIntMacro(obj_type, VMPA_NO_VIRTUAL); return result; -- cgit v0.11.2-87-g4458