diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2022-07-03 20:29:28 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-07-08 10:10:11 +0200 |
commit | 8d8e6c84e512c1a8b33aac75965b84481d1a1d13 (patch) | |
tree | 9ed209d057081d4283eb44b51c0d9af18f976eab /qadevOOo | |
parent | 911ac42485b690df5cbbff6e3c04b111c1723aca (diff) |
[API CHANGE] Drop css::accessibility::XAccessibleStateSet
which is internal API, unused (as far as I can tell) by external
users.
This state is purely a bitset
(as implemented by utl::AccessibleStateSetHelper)
so we can just return it as a 64-bit value.
This shaves significant time off the performance profiles
of code that loads very complex shapes, because this state
is frequently used, and we no longer need to allocate a return
value on the heap for every call.
Change-Id: Icf1b3bd367c256646ae9015f9127025f59459c2c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136786
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'qadevOOo')
8 files changed, 29 insertions, 36 deletions
diff --git a/qadevOOo/runner/util/AccessibilityTools.java b/qadevOOo/runner/util/AccessibilityTools.java index 4426af496acd..562c03e67b41 100644 --- a/qadevOOo/runner/util/AccessibilityTools.java +++ b/qadevOOo/runner/util/AccessibilityTools.java @@ -128,8 +128,8 @@ public class AccessibilityTools { private static XAccessibleContext getAccessibleObjectForRole_(XAccessible xacc, short role) { XAccessibleContext ac = xacc.getAccessibleContext(); - boolean isShowing = ac.getAccessibleStateSet() - .contains(com.sun.star.accessibility.AccessibleStateType.SHOWING); + boolean isShowing = (ac.getAccessibleStateSet() + & com.sun.star.accessibility.AccessibleStateType.SHOWING) != 0; if ((ac.getAccessibleRole() == role) && isShowing) { SearchedAccessible = xacc; @@ -215,8 +215,8 @@ public class AccessibilityTools { String name, String implName) { XAccessibleContext ac = xacc.getAccessibleContext(); - boolean isShowing = ac.getAccessibleStateSet() - .contains(com.sun.star.accessibility.AccessibleStateType.SHOWING); + boolean isShowing = (ac.getAccessibleStateSet() & + com.sun.star.accessibility.AccessibleStateType.SHOWING) != 0; // hotfix for i91828: // if role to search is 0 then ignore the role. @@ -282,8 +282,8 @@ public class AccessibilityTools { logging(log,indent + indent + bounds); } - boolean isShowing = ac.getAccessibleStateSet() - .contains(com.sun.star.accessibility.AccessibleStateType.SHOWING); + boolean isShowing = (ac.getAccessibleStateSet() + & com.sun.star.accessibility.AccessibleStateType.SHOWING) != 0; logging(log,indent + indent + "StateType contains SHOWING: " + isShowing); diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java index 52dad680183e..fee660617693 100644 --- a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java +++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java @@ -232,8 +232,8 @@ public class _XAccessibleComponent extends MultiMethodTest { children[i]); boolean MightBeCovered = false; - boolean isShowing = xAc.getAccessibleStateSet() - .contains(com.sun.star.accessibility.AccessibleStateType.SHOWING); + boolean isShowing = (xAc.getAccessibleStateSet() & + com.sun.star.accessibility.AccessibleStateType.SHOWING) != 0; log.println("\tStateType containsPoint SHOWING: " + isShowing); diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java index cabf818af527..f5b23c89bed7 100644 --- a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java +++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java @@ -20,7 +20,6 @@ package ifc.accessibility; import com.sun.star.accessibility.IllegalAccessibleComponentStateException; import com.sun.star.accessibility.XAccessible; import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleStateSet; import com.sun.star.lang.Locale; import lib.MultiMethodTest; @@ -281,17 +280,15 @@ public class _XAccessibleContext extends MultiMethodTest { * Has <b> OK </b> status if the set is not null. */ public void _getAccessibleStateSet() { - XAccessibleStateSet set = oObj.getAccessibleStateSet(); + long set = oObj.getAccessibleStateSet(); boolean res = true; String[] expectedStateNames = (String[]) tEnv.getObjRelation( "expectedStateNames"); - short[] expectedStates = (short[]) tEnv.getObjRelation( + long[] expectedStates = (long[]) tEnv.getObjRelation( "expectedStates"); if ((expectedStateNames != null) && (expectedStates != null)) { res = checkStates(expectedStateNames, expectedStates, set); - } else { - res = set != null; } tRes.tested("getAccessibleStateSet()", res); @@ -319,12 +316,12 @@ public class _XAccessibleContext extends MultiMethodTest { } protected boolean checkStates(String[] expectedStateNames, - short[] expectedStates, - XAccessibleStateSet set) { + long[] expectedStates, + long set) { boolean works = true; for (int k = 0; k < expectedStateNames.length; k++) { - boolean contains = set.contains(expectedStates[k]); + boolean contains = (set & expectedStates[k]) != 0; if (contains) { log.println("Set contains " + expectedStateNames[k] + diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleEventBroadcaster.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleEventBroadcaster.java index 297166988fb3..80c52803a64f 100644 --- a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleEventBroadcaster.java +++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleEventBroadcaster.java @@ -184,10 +184,10 @@ public class _XAccessibleEventBroadcaster extends MultiMethodTest { protected static boolean chkTransient(Object Testcase) { boolean ret = false; XAccessibleContext accCon = UnoRuntime.queryInterface(XAccessibleContext.class,Testcase); - if (accCon.getAccessibleStateSet().contains( - com.sun.star.accessibility.AccessibleStateType.TRANSIENT)){ - if (!accCon.getAccessibleParent().getAccessibleContext().getAccessibleStateSet().contains( - com.sun.star.accessibility.AccessibleStateType.MANAGES_DESCENDANTS)) { + if ((accCon.getAccessibleStateSet() & + com.sun.star.accessibility.AccessibleStateType.TRANSIENT) != 0){ + if ((accCon.getAccessibleParent().getAccessibleContext().getAccessibleStateSet() & + com.sun.star.accessibility.AccessibleStateType.MANAGES_DESCENDANTS) == 0) { throw new lib.StatusException(lib.Status.failed("Parent doesn't manage descendents")); } ret=true; diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleExtendedComponent.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleExtendedComponent.java index 0b2c204c2482..dc6355e76554 100644 --- a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleExtendedComponent.java +++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleExtendedComponent.java @@ -72,7 +72,7 @@ public class _XAccessibleExtendedComponent extends MultiMethodTest { /** * Calls the method and compares returned value with value that was * returned by the method - * <code>XAccessibleStateSet.contains(AccessibleStateType.ENABLED)</code>. + * <code>XAccessibleStateSet & AccessibleStateType.ENABLED</code>. * Has OK status if returned values are equal. * deprecated from version srx644g 29.10.02 on * @@ -86,7 +86,7 @@ public class _XAccessibleExtendedComponent extends MultiMethodTest { UnoRuntime.queryInterface(XAccessibleStateSet.class, oObj); if (accStateSet != null) { - res = accStateSet.contains(AccessibleStateType.ENABLED)==isEnabled; + res = ((accStateSet & AccessibleStateType.ENABLED) != 0) == isEnabled; } tRes.tested("isEnabled()", res); @@ -111,4 +111,4 @@ public class _XAccessibleExtendedComponent extends MultiMethodTest { log.println("getToolTipText(): '" + toolTipText + "'"); tRes.tested("getToolTipText()", toolTipText != null); } -}
\ No newline at end of file +} diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleSelection.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleSelection.java index edbf477c90cb..0cf632c47a38 100644 --- a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleSelection.java +++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleSelection.java @@ -545,9 +545,9 @@ public class _XAccessibleSelection extends MultiMethodTest { for (int i = 0; i < cc; i++) { try { - if (accCon.getAccessibleChild(i).getAccessibleContext() + if ((accCon.getAccessibleChild(i).getAccessibleContext() .getAccessibleStateSet() - .contains(com.sun.star.accessibility.AccessibleStateType.SELECTABLE)) { + & com.sun.star.accessibility.AccessibleStateType.SELECTABLE) != 0) { ret = ret + 1; System.out.println("Child " + i + " is selectable"); } @@ -564,9 +564,9 @@ public class _XAccessibleSelection extends MultiMethodTest { boolean res = false; try { - if (accCon.getAccessibleChild(index).getAccessibleContext() + if ((accCon.getAccessibleChild(index).getAccessibleContext() .getAccessibleStateSet() - .contains(com.sun.star.accessibility.AccessibleStateType.SELECTABLE)) { + & com.sun.star.accessibility.AccessibleStateType.SELECTABLE) != 0) { res = true; } diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java index 87f1c5a74164..611c8f7abb78 100644 --- a/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java +++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java @@ -27,11 +27,7 @@ import util.AccessibilityTools; import util.SOfficeFactory; import util.utils; -import com.sun.star.accessibility.AccessibleRole; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleAction; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleStateSet; +import com.sun.star.accessibility.*; import com.sun.star.awt.XWindow; import com.sun.star.container.XIndexAccess; import com.sun.star.frame.XController; @@ -133,8 +129,8 @@ public class ScAccessiblePageHeaderArea extends TestCase { oObj = AccessibilityTools.getAccessibleObjectForRole (xRoot, AccessibleRole.HEADER, "").getAccessibleChild(0); XAccessibleContext cont = UnoRuntime.queryInterface(XAccessibleContext.class, oObj); - XAccessibleStateSet StateSet = cont.getAccessibleStateSet(); - if (StateSet.contains((short)27)) { + long StateSet = cont.getAccessibleStateSet(); + if ((StateSet & AccessibleStateType.TRANSIENT) != 0) { log.println("Object is transient"); } diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrl.java b/qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrl.java index 05907d28717d..ae7e2eed73cd 100644 --- a/qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrl.java +++ b/qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrl.java @@ -213,7 +213,7 @@ public class AccessibleIconChoiceCtrl extends TestCase { "com.sun.star.accessibility.AccessibleStateType.MANAGES_DESCENDANTS", }; - short[] expectedStates = new short[] { + long[] expectedStates = new long[] { com.sun.star.accessibility.AccessibleStateType.ENABLED, com.sun.star.accessibility.AccessibleStateType.FOCUSABLE, com.sun.star.accessibility.AccessibleStateType.SHOWING, @@ -241,4 +241,4 @@ public class AccessibleIconChoiceCtrl extends TestCase { return tEnv; } -}
\ No newline at end of file +} |