diff options
| author | Po Lu | 2024-06-11 14:39:40 +0800 |
|---|---|---|
| committer | Po Lu | 2024-06-11 14:40:55 +0800 |
| commit | 677f082b0feda295e6a710b5dac6040f57cfad8b (patch) | |
| tree | cbd18da7062cda11965c1a57f14b8fb223a75ce9 /java | |
| parent | bac8a70f454d022d8352200d85eacd27017d4f12 (diff) | |
| download | emacs-677f082b0feda295e6a710b5dac6040f57cfad8b.tar.gz emacs-677f082b0feda295e6a710b5dac6040f57cfad8b.zip | |
Eliminate some redundant synchronization on Android
* java/org/gnu/emacs/EmacsService.java (resetIC): Return on all
versions of Android if the connection need not be reset.
* java/org/gnu/emacs/EmacsView.java (getICMode, setICMode):
Remove needless synchronization.
Diffstat (limited to 'java')
| -rw-r--r-- | java/org/gnu/emacs/EmacsService.java | 18 | ||||
| -rw-r--r-- | java/org/gnu/emacs/EmacsView.java | 4 |
2 files changed, 15 insertions, 7 deletions
diff --git a/java/org/gnu/emacs/EmacsService.java b/java/org/gnu/emacs/EmacsService.java index 2dcaad16e50..cfe9e42de4d 100644 --- a/java/org/gnu/emacs/EmacsService.java +++ b/java/org/gnu/emacs/EmacsService.java | |||
| @@ -899,11 +899,19 @@ public final class EmacsService extends Service | |||
| 899 | if (DEBUG_IC) | 899 | if (DEBUG_IC) |
| 900 | Log.d (TAG, "resetIC: " + window + ", " + icMode); | 900 | Log.d (TAG, "resetIC: " + window + ", " + icMode); |
| 901 | 901 | ||
| 902 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU | 902 | oldMode = window.view.getICMode (); |
| 903 | && (oldMode = window.view.getICMode ()) == icMode | 903 | |
| 904 | /* Don't do this if there is currently no input | 904 | /* If it's not necessary to reset the input connection for ICMODE to |
| 905 | connection. */ | 905 | take effect, return immediately. */ |
| 906 | && oldMode != IC_MODE_NULL) | 906 | if (oldMode == IC_MODE_NULL && icMode == IC_MODE_NULL) |
| 907 | { | ||
| 908 | if (DEBUG_IC) | ||
| 909 | Log.d (TAG, "resetIC: redundant invocation ignored"); | ||
| 910 | return; | ||
| 911 | } | ||
| 912 | |||
| 913 | if (oldMode == icMode | ||
| 914 | && Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) | ||
| 907 | { | 915 | { |
| 908 | if (DEBUG_IC) | 916 | if (DEBUG_IC) |
| 909 | Log.d (TAG, "resetIC: calling invalidateInput"); | 917 | Log.d (TAG, "resetIC: calling invalidateInput"); |
diff --git a/java/org/gnu/emacs/EmacsView.java b/java/org/gnu/emacs/EmacsView.java index 244a3a02166..4a505b3c0dc 100644 --- a/java/org/gnu/emacs/EmacsView.java +++ b/java/org/gnu/emacs/EmacsView.java | |||
| @@ -891,13 +891,13 @@ public final class EmacsView extends ViewGroup | |||
| 891 | return true; | 891 | return true; |
| 892 | } | 892 | } |
| 893 | 893 | ||
| 894 | public synchronized void | 894 | public void |
| 895 | setICMode (int icMode) | 895 | setICMode (int icMode) |
| 896 | { | 896 | { |
| 897 | this.icMode = icMode; | 897 | this.icMode = icMode; |
| 898 | } | 898 | } |
| 899 | 899 | ||
| 900 | public synchronized int | 900 | public int |
| 901 | getICMode () | 901 | getICMode () |
| 902 | { | 902 | { |
| 903 | return icMode; | 903 | return icMode; |