summaryrefslogtreecommitdiff
path: root/plugins/dex/python/constants.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/dex/python/constants.c')
-rw-r--r--plugins/dex/python/constants.c89
1 files changed, 36 insertions, 53 deletions
diff --git a/plugins/dex/python/constants.c b/plugins/dex/python/constants.c
index 3e77fd6..b43e3f1 100644
--- a/plugins/dex/python/constants.c
+++ b/plugins/dex/python/constants.c
@@ -32,13 +32,9 @@
-/* Définit les constantes communes pour le format Dex. */
-static bool define_python_dex_format_common_constants(PyTypeObject *);
-
-
/******************************************************************************
* *
-* Paramètres : obj_type = type dont le dictionnaire est à compléter. *
+* Paramètres : type = type dont le dictionnaire est à compléter. *
* *
* Description : Définit les constantes communes pour le format Dex. *
* *
@@ -48,56 +44,43 @@ static bool define_python_dex_format_common_constants(PyTypeObject *);
* *
******************************************************************************/
-static bool define_python_dex_format_common_constants(PyTypeObject *obj_type)
-{
- bool result; /* Bilan à retourner */
-
- result = true;
-
- /* Définition des drapeaux d'accès */
-
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_PUBLIC);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_PRIVATE);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_PROTECTED);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_STATIC);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_FINAL);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_SYNCHRONIZED);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_VOLATILE);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_BRIDGE);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_TRANSIENT);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_VARARGS);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_NATIVE);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_INTERFACE);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_ABSTRACT);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_STRICT);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_SYNTHETIC);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_ANNOTATION);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_ENUM);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_CONSTRUCTOR);
- if (result) result = PyDict_AddULongMacro(obj_type, ACC_DECLARED_SYNCHRONIZED);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : obj_type = type dont le dictionnaire est à compléter. *
-* *
-* Description : Définit les constantes pour le format Dex. *
-* *
-* Retour : true en cas de succès de l'opération, false sinon. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-bool define_python_dex_format_constants(PyTypeObject *obj_type)
+bool define_python_dex_format_common_constants(PyTypeObject *type)
{
bool result; /* Bilan à retourner */
-
- result = define_python_dex_format_common_constants(obj_type);
+ PyObject *values; /* Groupe de valeurs à établir */
+
+ values = PyDict_New();
+
+ result = add_const_to_group(values, "PUBLIC", ACC_PUBLIC);
+ if (result) result = add_const_to_group(values, "PRIVATE", ACC_PRIVATE);
+ if (result) result = add_const_to_group(values, "PROTECTED", ACC_PROTECTED);
+ if (result) result = add_const_to_group(values, "STATIC", ACC_STATIC);
+ if (result) result = add_const_to_group(values, "FINAL", ACC_FINAL);
+ if (result) result = add_const_to_group(values, "SYNCHRONIZED", ACC_SYNCHRONIZED);
+ if (result) result = add_const_to_group(values, "VOLATILE", ACC_VOLATILE);
+ if (result) result = add_const_to_group(values, "BRIDGE", ACC_BRIDGE);
+ if (result) result = add_const_to_group(values, "TRANSIENT", ACC_TRANSIENT);
+ if (result) result = add_const_to_group(values, "VARARGS", ACC_VARARGS);
+ if (result) result = add_const_to_group(values, "NATIVE", ACC_NATIVE);
+ if (result) result = add_const_to_group(values, "INTERFACE", ACC_INTERFACE);
+ if (result) result = add_const_to_group(values, "ABSTRACT", ACC_ABSTRACT);
+ if (result) result = add_const_to_group(values, "STRICT", ACC_STRICT);
+ if (result) result = add_const_to_group(values, "SYNTHETIC", ACC_SYNTHETIC);
+ if (result) result = add_const_to_group(values, "ANNOTATION", ACC_ANNOTATION);
+ if (result) result = add_const_to_group(values, "ENUM", ACC_ENUM);
+ if (result) result = add_const_to_group(values, "CONSTRUCTOR", ACC_CONSTRUCTOR);
+ if (result) result = add_const_to_group(values, "DECLARED_SYNCHRONIZED", ACC_DECLARED_SYNCHRONIZED);
+
+ if (!result)
+ {
+ Py_DECREF(values);
+ goto exit;
+ }
+
+ result = attach_constants_group_to_type(type, true, "AccessFlags", values,
+ "Accessibility and overall properties of classes and class members.");
+
+ exit:
return result;