aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2024-05-12 20:24:19 +0800
committerPo Lu2024-05-12 20:24:19 +0800
commit86d196c71d763ae81229e7e1eb2c6e37d0456f06 (patch)
treecdd109f0c88de58606399efe977b18fd844cf3c8 /src
parentea98a6af2f30eccfed3e152149c6a039bd16ff33 (diff)
downloademacs-86d196c71d763ae81229e7e1eb2c6e37d0456f06.tar.gz
emacs-86d196c71d763ae81229e7e1eb2c6e37d0456f06.zip
Properly deinitialize directory cursors on closedir
* src/androidvfs.c (android_saf_tree_closedir): Call cursor.close, for deleting the local reference to enable its garbage collection is not sufficient to release all related resources.
Diffstat (limited to 'src')
-rw-r--r--src/androidvfs.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/androidvfs.c b/src/androidvfs.c
index 004abd62518..c0bd86e54b8 100644
--- a/src/androidvfs.c
+++ b/src/androidvfs.c
@@ -5562,6 +5562,10 @@ android_saf_tree_closedir (struct android_vdir *vdir)
5562 free (dir->name); 5562 free (dir->name);
5563 5563
5564 /* Yes, DIR->cursor is a local reference. */ 5564 /* Yes, DIR->cursor is a local reference. */
5565 (*android_java_env)->CallVoidMethod (android_java_env,
5566 dir->cursor,
5567 cursor_class.close);
5568 (*android_java_env)->ExceptionClear (android_java_env);
5565 ANDROID_DELETE_LOCAL_REF (dir->cursor); 5569 ANDROID_DELETE_LOCAL_REF (dir->cursor);
5566 5570
5567 /* If the ``directory file descriptor'' has been opened, close 5571 /* If the ``directory file descriptor'' has been opened, close