diff options
| author | Lachlan Easton <elbeaston@gmail.com> | 2019-12-17 03:01:02 +1100 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-12-16 11:01:02 -0500 |
| commit | fe0e8c87b762aba6eb5ff1fad8ad7d37404476f1 (patch) | |
| tree | 47045f781e6b478b97778dc3d3a3a181f98526ad /lib | |
| parent | 0f09ff49235e77af06056d3b5cdca0098aa050c3 (diff) | |
| download | zig-fe0e8c87b762aba6eb5ff1fad8ad7d37404476f1.tar.gz zig-fe0e8c87b762aba6eb5ff1fad8ad7d37404476f1.zip | |
Tokenizer: Copy optional tokens prior to being set to null #3737 (#3910)
* Tokenizer: Copy optional tokens prior to being set to null #3737
* Add TODO comments, reminder to audit copying optional pattern.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/std/json.zig | 1 | ||||
| -rw-r--r-- | lib/std/zig/tokenizer.zig | 8 |
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/std/json.zig b/lib/std/json.zig index c1a0b42009..030b940276 100644 --- a/lib/std/json.zig +++ b/lib/std/json.zig @@ -886,6 +886,7 @@ pub const TokenStream = struct { pub fn next(self: *TokenStream) Error!?Token { if (self.token) |token| { + // TODO: Audit this pattern once #2915 is closed const copy = token; self.token = null; return copy; diff --git a/lib/std/zig/tokenizer.zig b/lib/std/zig/tokenizer.zig index eda1527100..d95fb47d41 100644 --- a/lib/std/zig/tokenizer.zig +++ b/lib/std/zig/tokenizer.zig @@ -411,8 +411,10 @@ pub const Tokenizer = struct { pub fn next(self: *Tokenizer) Token { if (self.pending_invalid_token) |token| { + // TODO: Audit this pattern once #2915 is closed + const copy = token; self.pending_invalid_token = null; - return token; + return copy; } const start_index = self.index; var state = State.Start; @@ -1265,8 +1267,10 @@ pub const Tokenizer = struct { if (result.id == Token.Id.Eof) { if (self.pending_invalid_token) |token| { + // TODO: Audit this pattern once #2915 is closed + const copy = token; self.pending_invalid_token = null; - return token; + return copy; } } |
