diff --git a/src/android/app/src/main/java/org/citra/emu/NativeLibrary.java b/src/android/app/src/main/java/org/citra/emu/NativeLibrary.java index 3479822fe72..b5b2e7d33dc 100644 --- a/src/android/app/src/main/java/org/citra/emu/NativeLibrary.java +++ b/src/android/app/src/main/java/org/citra/emu/NativeLibrary.java @@ -214,6 +214,7 @@ public static void saveImageToFile(String path, int[] pixels, int width, int hei } catch (Exception e) { Log.e("citra", "saveImageToFile error: " + path, e); } + bitmap.recycle(); } } diff --git a/src/android/app/src/main/java/org/citra/emu/ui/EmulationFragment.java b/src/android/app/src/main/java/org/citra/emu/ui/EmulationFragment.java index 94a21c1f1da..dc422d53e04 100644 --- a/src/android/app/src/main/java/org/citra/emu/ui/EmulationFragment.java +++ b/src/android/app/src/main/java/org/citra/emu/ui/EmulationFragment.java @@ -103,6 +103,7 @@ protected Integer doInBackground(Bitmap... args) { error = TranslateHelper.RequestYeekit(); } } + image.recycle(); return error; } @@ -461,6 +462,7 @@ public void requestScreenshot() { BaiduOCRTask task = new BaiduOCRTask(this); TranslateHelper.BaiduOCRLanguage = TranslateHelper.BaiduOCRLanguageJPN; task.execute(image); + screenshot.recycle(); }); }); } diff --git a/src/android/jni/input_manager.cpp b/src/android/jni/input_manager.cpp index 9091fbbb834..1bb1d8bc963 100644 --- a/src/android/jni/input_manager.cpp +++ b/src/android/jni/input_manager.cpp @@ -78,15 +78,14 @@ class ButtonList { std::unique_ptr CreateButton(int button_id, float threshold, bool trigger_if_greater) { std::lock_guard guard(mutex); - std::unique_ptr button = - std::make_unique(this, button_id, threshold, trigger_if_greater); + auto button = std::make_unique(this, button_id, threshold, trigger_if_greater); buttons.push_back(button.get()); return std::move(button); } void DestroyButton(AnalogButton* target) { std::lock_guard guard(mutex); - buttons.erase(std::remove(buttons.begin(), buttons.end(), target), buttons.end()); + std::erase(buttons, target); } bool ChangeButtonValue(int button_id, float value) { @@ -156,14 +155,14 @@ class AnalogList { public: std::unique_ptr CreateButton(int button_id) { std::lock_guard guard(mutex); - std::unique_ptr analog = std::make_unique(this, button_id); + auto analog = std::make_unique(this, button_id); buttons.push_back(analog.get()); return std::move(analog); } void DestroyButton(Joystick* target) { std::lock_guard guard(mutex); - buttons.erase(std::remove(buttons.begin(), buttons.end(), target), buttons.end()); + std::erase(buttons, target); } bool ChangeJoystickStatus(int button_id, float x, float y) { diff --git a/src/android/jni/main_android.cpp b/src/android/jni/main_android.cpp index a62bf9084ef..67f3c0202f0 100644 --- a/src/android/jni/main_android.cpp +++ b/src/android/jni/main_android.cpp @@ -114,6 +114,7 @@ void BootGame(const std::string& path) { "Error while loading ROM! An unknown error occured."); break; } + s_render_window.reset(); return; } @@ -627,6 +628,7 @@ JNIEXPORT void JNICALL Java_org_citra_emu_NativeLibrary_setRunningSettings(JNIEn // Accurate Mul Settings::values.shaders_accurate_mul = static_cast(settings[i++]); + Config::Set(Config::SHADERS_ACCURATE_MUL, Settings::values.shaders_accurate_mul); // Custom Layout Settings::values.custom_layout = settings[i++] > 0;