Fix leakage of JNI object references
Fixes https://github.com/godotengine/godot/issues/87548
This commit is contained in:
@ -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();
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user