6887249: Get rid of double-check for isValid() idiom in validate() methods

Reviewed-by: art, dcherepanov
This commit is contained in:
Anthony Petrov 2009-10-23 14:52:55 +04:00
parent 4b2a80c711
commit 85e10718ce

View File

@ -1583,34 +1583,31 @@ public class Container extends Component {
* @see #validateTree
*/
public void validate() {
/* Avoid grabbing lock unless really necessary. */
if (!isValid() || descendUnconditionallyWhenValidating) {
boolean updateCur = false;
synchronized (getTreeLock()) {
if ((!isValid() || descendUnconditionallyWhenValidating)
&& peer != null)
{
ContainerPeer p = null;
if (peer instanceof ContainerPeer) {
p = (ContainerPeer) peer;
}
if (p != null) {
p.beginValidate();
}
validateTree();
if (p != null) {
p.endValidate();
// Avoid updating cursor if this is an internal call.
// See validateUnconditionally() for details.
if (!descendUnconditionallyWhenValidating) {
updateCur = isVisible();
}
boolean updateCur = false;
synchronized (getTreeLock()) {
if ((!isValid() || descendUnconditionallyWhenValidating)
&& peer != null)
{
ContainerPeer p = null;
if (peer instanceof ContainerPeer) {
p = (ContainerPeer) peer;
}
if (p != null) {
p.beginValidate();
}
validateTree();
if (p != null) {
p.endValidate();
// Avoid updating cursor if this is an internal call.
// See validateUnconditionally() for details.
if (!descendUnconditionallyWhenValidating) {
updateCur = isVisible();
}
}
}
if (updateCur) {
updateCursorImmediately();
}
}
if (updateCur) {
updateCursorImmediately();
}
}