diff options
| author | Po Lu | 2024-05-12 20:24:19 +0800 |
|---|---|---|
| committer | Po Lu | 2024-05-12 20:24:19 +0800 |
| commit | 86d196c71d763ae81229e7e1eb2c6e37d0456f06 (patch) | |
| tree | cdd109f0c88de58606399efe977b18fd844cf3c8 /src | |
| parent | ea98a6af2f30eccfed3e152149c6a039bd16ff33 (diff) | |
| download | emacs-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.c | 4 |
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 |