diff options
author | David Snopek <dsnopek@gmail.com> | 2023-10-20 10:39:05 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-20 10:39:05 -0500 |
commit | 0a6a19e33bb75d9f6f23adf16b4e695d009b0fc6 (patch) | |
tree | 67a09f97928ca0de4b1412c028ebba3452927319 | |
parent | 51826241411a1e5acbc036495db3a3eadacb744d (diff) | |
parent | 60dfa3445a84c479dd138c5ca26049fab69e3f01 (diff) | |
download | redot-cpp-0a6a19e33bb75d9f6f23adf16b4e695d009b0fc6.tar.gz |
Merge pull request #1253 from gilzoide/fix-variant-iteration-valid-flag
Fix return value and `r_valid` value in `Variant::iter_init` and `Variant::iter_next`
-rw-r--r-- | src/variant/variant.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/variant/variant.cpp b/src/variant/variant.cpp index 641f59c..db15be1 100644 --- a/src/variant/variant.cpp +++ b/src/variant/variant.cpp @@ -638,14 +638,16 @@ bool Variant::in(const Variant &index, bool *r_valid) const { bool Variant::iter_init(Variant &r_iter, bool &r_valid) const { GDExtensionBool valid; - internal::gdextension_interface_variant_iter_init(_native_ptr(), r_iter._native_ptr(), &valid); - return PtrToArg<bool>::convert(&valid); + GDExtensionBool result = internal::gdextension_interface_variant_iter_init(_native_ptr(), r_iter._native_ptr(), &valid); + r_valid = PtrToArg<bool>::convert(&valid); + return PtrToArg<bool>::convert(&result); } bool Variant::iter_next(Variant &r_iter, bool &r_valid) const { GDExtensionBool valid; - internal::gdextension_interface_variant_iter_next(_native_ptr(), r_iter._native_ptr(), &valid); - return PtrToArg<bool>::convert(&valid); + GDExtensionBool result = internal::gdextension_interface_variant_iter_next(_native_ptr(), r_iter._native_ptr(), &valid); + r_valid = PtrToArg<bool>::convert(&valid); + return PtrToArg<bool>::convert(&result); } Variant Variant::iter_get(const Variant &r_iter, bool &r_valid) const { |