From ee64fd90aa3294784cf97fa8549fad53dd5d3c56 Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Sun, 18 Jun 2023 20:53:49 +0800 Subject: [PATCH 1/3] Bump version. --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 14867dad7..185210341 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = [".", "codegen"] [package] name = "rhai" -version = "1.15.0" +version = "1.16.0" rust-version = "1.61.0" edition = "2018" resolver = "2" From 03b1a1cea24b0f77116d554dbbfb1302c0589e65 Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Sat, 24 Jun 2023 19:14:18 +0800 Subject: [PATCH 2/3] Fix bug in Dynamic::deep_scan. --- CHANGELOG.md | 10 ++++++++++ src/types/dynamic.rs | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fb826831..5feca2d9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ Rhai Release Notes ================== +Version 1.16.0 +============== + +Bug fixes +--------- + +* `Dynamic::deep_scan` is fixed so now it properly scans arrays, object maps and function pointers embedded inside data. + + Version 1.15.0 ============== @@ -14,6 +23,7 @@ Enhancements * Expressions involving `this` should now run slightly faster due to a dedicated `AST` node `ThisPtr`. * A `take` function is added to the standard library to take ownership of any data (replacing with `()`) in order to avoid cloning. +* `Dynamic::take` is added to take ownership of the data (replacing with `()`) in order to avoid cloning. * `EvalAltResult::ErrorMismatchOutputType` now gives a better name for the requested generic type (e.g. `&str` is now `&str` and not `string`). diff --git a/src/types/dynamic.rs b/src/types/dynamic.rs index 7650ad9cf..515f3694e 100644 --- a/src/types/dynamic.rs +++ b/src/types/dynamic.rs @@ -2107,6 +2107,8 @@ impl Dynamic { #[allow(clippy::only_used_in_recursion)] pub fn deep_scan(&mut self, mut filter: impl FnMut(&mut Self)) { fn scan_inner(value: &mut Dynamic, filter: &mut impl FnMut(&mut Dynamic)) { + filter(value); + match &mut value.0 { #[cfg(not(feature = "no_index"))] Union::Array(a, ..) => a.iter_mut().for_each(|v| scan_inner(v, filter)), @@ -2117,7 +2119,6 @@ impl Dynamic { } } - filter(self); scan_inner(self, &mut filter); } } From 1326ab933c9a32a56359f0384ec4a4e65039aaef Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Sun, 25 Jun 2023 21:36:56 +0800 Subject: [PATCH 3/3] Change version to 1.15.1. --- CHANGELOG.md | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5feca2d9d..33ff513e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ Rhai Release Notes ================== -Version 1.16.0 +Version 1.15.1 ============== Bug fixes diff --git a/Cargo.toml b/Cargo.toml index 185210341..821c0a152 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = [".", "codegen"] [package] name = "rhai" -version = "1.16.0" +version = "1.15.1" rust-version = "1.61.0" edition = "2018" resolver = "2"