summaryrefslogtreecommitdiff
path: root/build-aux
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux')
-rw-r--r--build-aux/qmi-codegen/Message.py15
-rw-r--r--build-aux/qmi-codegen/Variable.py5
-rw-r--r--build-aux/qmi-codegen/VariableArray.py3
-rw-r--r--build-aux/qmi-codegen/VariableSequence.py7
-rw-r--r--build-aux/qmi-codegen/VariableStruct.py7
5 files changed, 34 insertions, 3 deletions
diff --git a/build-aux/qmi-codegen/Message.py b/build-aux/qmi-codegen/Message.py
index c60e4593..8d1b7cc1 100644
--- a/build-aux/qmi-codegen/Message.py
+++ b/build-aux/qmi-codegen/Message.py
@@ -286,6 +286,7 @@ class Message:
'{\n'
' const gchar *tlv_type_str = NULL;\n'
' g_autofree gchar *translated_value = NULL;\n'
+ ' gboolean value_has_personal_info = FALSE;\n'
'\n')
if self.type == 'Message':
@@ -303,7 +304,11 @@ class Message:
' tlv_type_str = "${field_name}";\n'
' translated_value = ${underscore_field}_get_printable (\n'
' ctx->self,\n'
- ' ctx->line_prefix);\n'
+ ' ctx->line_prefix);\n')
+ if field.variable is not None and field.variable.contains_personal_info:
+ field_template += (
+ ' value_has_personal_info = TRUE;\n')
+ field_template += (
' break;\n')
template += string.Template(field_template).substitute(translations)
@@ -326,7 +331,11 @@ class Message:
' tlv_type_str = "${field_name}";\n'
' translated_value = ${underscore_field}_get_printable (\n'
' ctx->self,\n'
- ' ctx->line_prefix);\n'
+ ' ctx->line_prefix);\n')
+ if field.variable is not None and field.variable.contains_personal_info:
+ field_template += (
+ ' value_has_personal_info = TRUE;\n')
+ field_template += (
' break;\n')
template += string.Template(field_template).substitute(translations)
@@ -348,7 +357,7 @@ class Message:
' } else {\n'
' g_autofree gchar *value_hex = NULL;\n'
'\n'
- ' if (qmi_utils_get_show_personal_info ())\n'
+ ' if (qmi_utils_get_show_personal_info () || !value_has_personal_info)\n'
' value_hex = qmi_helpers_str_hex (value, length, \':\');\n'
' else\n'
' value_hex = g_strdup ("###...");\n'
diff --git a/build-aux/qmi-codegen/Variable.py b/build-aux/qmi-codegen/Variable.py
index 65bca8d3..dc28f219 100644
--- a/build-aux/qmi-codegen/Variable.py
+++ b/build-aux/qmi-codegen/Variable.py
@@ -117,6 +117,11 @@ class Variable:
else:
self.personal_info = False;
+ """
+ Whether the variable contains personal info or not
+ """
+ self.contains_personal_info = self.personal_info
+
"""
Emits the code to declare specific new types required by the variable.
"""
diff --git a/build-aux/qmi-codegen/VariableArray.py b/build-aux/qmi-codegen/VariableArray.py
index 074f4710..17f5bc74 100644
--- a/build-aux/qmi-codegen/VariableArray.py
+++ b/build-aux/qmi-codegen/VariableArray.py
@@ -93,6 +93,9 @@ class VariableArray(Variable):
# Arrays need compat GIR support if the array element needs compat GIR support
self.needs_compat_gir = self.array_element.needs_compat_gir
+ # Arrays contain personal info if the array element contains personal info or they themselves are personal info
+ self.contains_personal_info = self.contains_personal_info or self.array_element.contains_personal_info
+
def emit_types(self, hfile, cfile, since, static):
self.array_element.emit_types(hfile, cfile, since, static)
diff --git a/build-aux/qmi-codegen/VariableSequence.py b/build-aux/qmi-codegen/VariableSequence.py
index 4343d67c..061b797b 100644
--- a/build-aux/qmi-codegen/VariableSequence.py
+++ b/build-aux/qmi-codegen/VariableSequence.py
@@ -57,6 +57,13 @@ class VariableSequence(Variable):
self.needs_compat_gir = True
break
+ # We'll contain personal info if at least one of the members contains personal info or we ourselves are personal info
+ if not self.contains_personal_info:
+ for member in self.members:
+ if member['object'].contains_personal_info:
+ self.contains_personal_info = True
+ break
+
def emit_types(self, hfile, cfile, since, static):
for member in self.members:
diff --git a/build-aux/qmi-codegen/VariableStruct.py b/build-aux/qmi-codegen/VariableStruct.py
index 0d084809..3e5b0aed 100644
--- a/build-aux/qmi-codegen/VariableStruct.py
+++ b/build-aux/qmi-codegen/VariableStruct.py
@@ -87,6 +87,13 @@ class VariableStruct(Variable):
self.new_method_gir = '__' + utils.build_underscore_name(self.struct_type_name_gir) + '_new'
self.free_method_gir = '__' + utils.build_underscore_name(self.struct_type_name_gir) + '_free'
+ # We'll contain personal info if at least one of the members contains personal info or we ourselves are personal info
+ if not self.contains_personal_info:
+ for member in self.members:
+ if member['object'].contains_personal_info:
+ self.contains_personal_info = True
+ break
+
def build_variable_declaration(self, line_prefix, variable_name):
raise RuntimeError('Variable of type "struct" can only be defined as array members')