Fix leakage of JNI object references

Fixes https://github.com/godotengine/godot/issues/87548
This commit is contained in:
Fredia Huya-Kouadio
2024-04-15 10:30:18 -07:00
parent b8fa48be04
commit f291a4ed3a
20 changed files with 139 additions and 32 deletions

View File

@ -35,9 +35,13 @@
#include <android/asset_manager.h>
#include <android/log.h>
#include <jni.h>
#include <stdio.h>
class FileAccessAndroid : public FileAccess {
static AAssetManager *asset_manager;
static jobject j_asset_manager;
mutable AAsset *asset = nullptr;
mutable uint64_t len = 0;
mutable uint64_t pos = 0;
@ -48,8 +52,6 @@ class FileAccessAndroid : public FileAccess {
void _close();
public:
static AAssetManager *asset_manager;
virtual Error open_internal(const String &p_path, int p_mode_flags) override; // open a file
virtual bool is_open() const override; // true when file is open
@ -92,6 +94,10 @@ public:
virtual void close() override;
static void setup(jobject p_asset_manager);
static void terminate();
~FileAccessAndroid();
};