Skip to content
This repository was archived by the owner on Oct 18, 2024. It is now read-only.

Commit c610d0a

Browse files
committed
fix: newly created UTF16String is not destroyed in subjstring_* functions
1 parent ef33d83 commit c610d0a

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

android-tree-sitter/src/main/cpp/utf16str/UTF16String.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,17 @@ UTF16String *UTF16String::substring_bytes(jint start, jint end) {
174174
}
175175

176176
jstring UTF16String::subjstring_chars(JNIEnv *env, jint start, jint end) {
177-
return substring_chars(start, end)->to_jstring(env);
177+
UTF16String *substr = substring_chars(start, end);
178+
jstring jstr = substr->to_jstring(env);
179+
cache.erase(substr);
180+
return jstr;
178181
}
179182

180183
jstring UTF16String::subjstring_bytes(JNIEnv *env, jint start, jint end) {
181-
return substring_bytes(start, end)->to_jstring(env);
184+
UTF16String *substr = substring_bytes(start, end);
185+
jstring jstr = substr->to_jstring(env);
186+
cache.erase(substr);
187+
return jstr;
182188
}
183189

184190
jint UTF16String::byte_length() {

0 commit comments

Comments
 (0)