Simplify the code flow in the conversion to primitive types so that default values are handled together.

This commit is contained in:
Ms2ger 2014-03-06 22:56:10 +01:00
parent 922d191948
commit 9fba4bcfba

View file

@ -1249,23 +1249,20 @@ for (uint32_t i = 0; i < length; ++i) {
"}" % (successVal, failureCode))
if type.nullable():
if defaultValue is not None and isinstance(defaultValue, IDLNullValue):
declType = CGGeneric("Option<" + typeName + ">")
else:
declType = CGGeneric(typeName)
if defaultValue is not None:
if isinstance(defaultValue, IDLNullValue):
assert type.nullable()
template = CGWrapper(CGIndenter(CGGeneric(template)),
pre="if ${haveValue} {\n",
post=("\n"
"} else {\n"
" ${declName} = None;\n"
"}")).define()
declType = CGGeneric("Option<" + typeName + ">")
else:
assert(defaultValue is None or
not isinstance(defaultValue, IDLNullValue))
declType = CGGeneric(typeName)
if (defaultValue is not None and
# We already handled IDLNullValue, so just deal with the other ones
not isinstance(defaultValue, IDLNullValue)):
tag = defaultValue.type.tag()
if tag in numericTags:
defaultStr = defaultValue.value