layers: Struct printing improvements for "pNext" struct chains
diff --git a/xgl-helper.py b/xgl-helper.py
index 448dbc8..a594462 100755
--- a/xgl-helper.py
+++ b/xgl-helper.py
@@ -496,7 +496,10 @@
if (stp_list[index]['ptr']):
sh_funcs.append(' if (pStruct->%s) {\n' % stp_list[index]['name'])
if 'pNext' == stp_list[index]['name']:
- sh_funcs.append(' stp_strs[%i] = dynamic_display((XGL_VOID*)pStruct->pNext, prefix);\n' % index)
+ sh_funcs.append(' tmpStr = dynamic_display((XGL_VOID*)pStruct->pNext, prefix);\n')
+ sh_funcs.append(' stp_strs[%i] = (char*)malloc(256+strlen(tmpStr));\n' % index)
+ sh_funcs.append(' sprintf(stp_strs[%i], " %%spNext (%%p)\\n%%s", prefix, (void*)pStruct->pNext, tmpStr);\n' % index)
+ sh_funcs.append(' free(tmpStr);\n')
else:
sh_funcs.append(' tmpStr = %s(pStruct->%s, extra_indent);\n' % (self._get_sh_func_name(stp_list[index]['type']), stp_list[index]['name']))
sh_funcs.append(' stp_strs[%i] = (char*)malloc(256+strlen(tmpStr)+strlen(prefix));\n' % (index))
@@ -523,7 +526,7 @@
sh_funcs.append(p_out)
sh_funcs.append(p_args)
if 0 != num_stps:
- sh_funcs.append(' for (uint32_t stp_index = 0; stp_index < %i; stp_index++) {\n' % num_stps)
+ sh_funcs.append(' for (int32_t stp_index = %i; stp_index >= 0; stp_index--) {\n' % (num_stps-1))
sh_funcs.append(' if (0 < strlen(stp_strs[stp_index])) {\n')
sh_funcs.append(' strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index]));\n')
sh_funcs.append(' free(stp_strs[stp_index]);\n')