Use CGIfElseWrapper in a few more places.

This commit is contained in:
Ms2ger 2014-03-20 20:32:16 +01:00
parent 904e8eaf17
commit ad086ba7da

View file

@ -536,14 +536,9 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
def handleDefault(template, setDefault): def handleDefault(template, setDefault):
if defaultValue is None: if defaultValue is None:
return template return template
return CGWrapper( return CGIfElseWrapper("${haveValue}",
CGIndenter(CGGeneric(template)), CGGeneric(template),
pre="if ${haveValue} {\n", CGGeneric(setDefault)).define()
post=("\n"
"} else {\n"
"%s;\n"
"}" %
CGIndenter(CGGeneric(setDefault)).define())).define()
# A helper function for handling null default values. Much like # A helper function for handling null default values. Much like
# handleDefault, but checks that the default value, if it exists, is null. # handleDefault, but checks that the default value, if it exists, is null.
@ -572,7 +567,7 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
CGIndenter(onFailureNotAnObject(failureCode)).define() + CGIndenter(onFailureNotAnObject(failureCode)).define() +
"}") "}")
if type.nullable(): if type.nullable():
templateBody = handleDefaultNull(templateBody, "${declName} = None") templateBody = handleDefaultNull(templateBody, "${declName} = None;")
else: else:
assert(defaultValue is None) assert(defaultValue is None)
@ -609,7 +604,7 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
templateBody) templateBody)
templateBody = handleDefaultNull(templateBody.define(), templateBody = handleDefaultNull(templateBody.define(),
"${declName} = None") "${declName} = None;")
return (templateBody, declType, None, isOptional, "None" if isOptional else None) return (templateBody, declType, None, isOptional, "None" if isOptional else None)
@ -708,7 +703,7 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
if isinstance(defaultValue, IDLNullValue): if isinstance(defaultValue, IDLNullValue):
assert(type.nullable()) assert(type.nullable())
return handleDefault(conversionCode, return handleDefault(conversionCode,
"${declName}.SetNull()") "${declName}.SetNull();")
value = "str::from_utf8(data).unwrap().to_owned()" value = "str::from_utf8(data).unwrap().to_owned()"
if type.nullable(): if type.nullable():
@ -716,7 +711,7 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
default = ( default = (
"static data: [u8, ..%s] = [ %s ];\n" "static data: [u8, ..%s] = [ %s ];\n"
"${declName} = %s" % "${declName} = %s;" %
(len(defaultValue.value) + 1, (len(defaultValue.value) + 1,
", ".join(["'" + char + "' as u8" for char in defaultValue.value] + ["0"]), ", ".join(["'" + char + "' as u8" for char in defaultValue.value] + ["0"]),
value)) value))
@ -776,7 +771,7 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
assert(defaultValue.type.tag() == IDLType.Tags.domstring) assert(defaultValue.type.tag() == IDLType.Tags.domstring)
template = "" #XXXjdm unfinished template = "" #XXXjdm unfinished
#template = handleDefault(template, #template = handleDefault(template,
# ("${declName} = %sValues::%s" % # ("${declName} = %sValues::%s;" %
# (enum, # (enum,
# getEnumValueName(defaultValue.value)))) # getEnumValueName(defaultValue.value))))
return (template, CGGeneric(enum), None, isOptional, None) return (template, CGGeneric(enum), None, isOptional, None)
@ -816,7 +811,7 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
templateBody = "${declName} = %s;" % value.define() templateBody = "${declName} = %s;" % value.define()
templateBody = handleDefaultNull(templateBody, templateBody = handleDefaultNull(templateBody,
"${declName} = NullValue()") "${declName} = NullValue();")
return (templateBody, declType, None, isOptional, "None" if isOptional else None) return (templateBody, declType, None, isOptional, "None" if isOptional else None)
@ -905,12 +900,9 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
if type.nullable(): if type.nullable():
defaultStr = "Some(%s)" % defaultStr defaultStr = "Some(%s)" % defaultStr
template = CGWrapper(CGIndenter(CGGeneric(template)), template = CGIfElseWrapper("${haveValue}",
pre="if ${haveValue} {\n", CGGeneric(template),
post=("\n" CGGeneric("${declName} = %s;" % defaultStr)).define()
"} else {\n"
" ${declName} = %s;\n"
"}" % defaultStr)).define()
return (template, declType, None, isOptional, "None" if isOptional else None) return (template, declType, None, isOptional, "None" if isOptional else None)