Update decoder.py to use try_unbox on destroy calls

Missing code generator changes for aosp/3272729.

Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31728>
This commit is contained in:
Serdar Kocdemir
2024-10-04 12:24:56 +00:00
committed by Marge Bot
parent d52a9d832e
commit 10acd37e93

View File

@@ -164,13 +164,13 @@ def emit_unmarshal(typeInfo, param, cgen, output = False, destroy = False, noUnb
lenAccessGuard = cgen.generalLengthAccessGuard(param)
if None == lenAccess or "1" == lenAccess:
cgen.stmt("boxed_%s_preserve = %s" % (param.paramName, param.paramName))
cgen.stmt("%s = unbox_%s(%s)" % (param.paramName, param.typeName, param.paramName))
cgen.stmt("%s = try_unbox_%s(%s)" % (param.paramName, param.typeName, param.paramName))
else:
if lenAccessGuard is not None:
cgen.beginIf(lenAccessGuard)
cgen.beginFor("uint32_t i = 0", "i < %s" % lenAccess, "++i")
cgen.stmt("boxed_%s_preserve[i] = %s[i]" % (param.paramName, param.paramName))
cgen.stmt("((%s*)(%s))[i] = unbox_%s(%s[i])" % (param.typeName, param.paramName, param.typeName, param.paramName))
cgen.stmt("((%s*)(%s))[i] = try_unbox_%s(%s[i])" % (param.typeName, param.paramName, param.typeName, param.paramName))
cgen.endFor()
if lenAccessGuard is not None:
cgen.endIf()