summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Snopek <dsnopek@gmail.com>2023-10-20 10:39:05 -0500
committerGitHub <noreply@github.com>2023-10-20 10:39:05 -0500
commit0a6a19e33bb75d9f6f23adf16b4e695d009b0fc6 (patch)
tree67a09f97928ca0de4b1412c028ebba3452927319
parent51826241411a1e5acbc036495db3a3eadacb744d (diff)
parent60dfa3445a84c479dd138c5ca26049fab69e3f01 (diff)
downloadredot-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.cpp10
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 {