Fix toVariant for nil values
This commit is contained in:
parent
a7d9aaef95
commit
fcc10071fb
2 changed files with 24 additions and 6 deletions
|
|
@ -71,9 +71,12 @@ proc newVariant*(r: cdouble): Variant {.inline.} =
|
|||
|
||||
proc newVariant*(s: string): Variant {.inline.} =
|
||||
new(result, variantFinalizer)
|
||||
var godotStr = s.toGodotString()
|
||||
initGodotVariant(result.godotVariant, godotStr)
|
||||
godotStr.deinit()
|
||||
if s.isNil:
|
||||
initGodotVariant(result.godotVariant)
|
||||
else:
|
||||
var godotStr = s.toGodotString()
|
||||
initGodotVariant(result.godotVariant, godotStr)
|
||||
godotStr.deinit()
|
||||
|
||||
import basis, nodepaths
|
||||
import planes, quats, rect2, rect3, rids
|
||||
|
|
|
|||
|
|
@ -445,7 +445,10 @@ proc godotTypeInfo*(T: typedesc[NimGodotObject]): GodotTypeInfo {.inline.} =
|
|||
)
|
||||
|
||||
proc toVariant*(self: NimGodotObject): Variant {.inline.} =
|
||||
newVariant(self.godotObject)
|
||||
if self.isNil:
|
||||
newVariant()
|
||||
else:
|
||||
newVariant(self.godotObject)
|
||||
|
||||
proc fromVariant*[T: NimGodotObject](self: var T,
|
||||
val: Variant): ConversionResult =
|
||||
|
|
@ -460,7 +463,10 @@ proc fromVariant*[T: NimGodotObject](self: var T,
|
|||
result = ConversionResult.TypeError
|
||||
|
||||
proc toVariant*(self: Variant): Variant {.inline.} =
|
||||
self
|
||||
if self.isNil:
|
||||
newVariant()
|
||||
else:
|
||||
self
|
||||
|
||||
proc fromVariant*(self: var Variant,
|
||||
val: Variant): ConversionResult {.inline.} =
|
||||
|
|
@ -531,7 +537,13 @@ proc godotTypeInfo*(T: typedesc[range]): VariantType {.inline.} =
|
|||
)
|
||||
|
||||
proc toVariant*[T: SomeGodotOrNum](val: T): Variant {.inline.} =
|
||||
newVariant(val)
|
||||
when val is ref:
|
||||
if val.isNil:
|
||||
newVariant()
|
||||
else:
|
||||
newVariant(val)
|
||||
else:
|
||||
newVariant(val)
|
||||
|
||||
proc fromVariant*[T: SomeSignedInt or SomeUnsignedInt](
|
||||
self: var T, val: Variant): ConversionResult =
|
||||
|
|
@ -717,6 +729,9 @@ proc godotTypeInfo*(T: typedesc[Table|TableRef]): GodotTypeInfo {.inline.} =
|
|||
result.variantType = VariantType.Dictionary
|
||||
|
||||
proc toVariant*[T: Table or TableRef](t: T): Variant =
|
||||
when t is ref:
|
||||
if t.isNil:
|
||||
return newVariant()
|
||||
var dict = newDictionary()
|
||||
mixin toVariant
|
||||
for k, v in t.pairs():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue