From 366111dbfe6d63e94bc33d191e5874d1c3cc37a4 Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Thu, 17 Oct 2002 02:11:58 +0000 Subject: [PATCH] small optimizations to avoid System.arraycopy() git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1810 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- src/java/com/threerings/media/RegionManager.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/java/com/threerings/media/RegionManager.java b/src/java/com/threerings/media/RegionManager.java index 1d346dca2..6caed2b2f 100644 --- a/src/java/com/threerings/media/RegionManager.java +++ b/src/java/com/threerings/media/RegionManager.java @@ -1,5 +1,5 @@ // -// $Id: RegionManager.java,v 1.3 2002/06/18 22:25:33 mdb Exp $ +// $Id: RegionManager.java,v 1.4 2002/10/17 02:11:58 ray Exp $ package com.threerings.media; @@ -72,16 +72,17 @@ public class RegionManager { ArrayList merged = new ArrayList(); - while (_dirty.size() > 0) { + for (int ii=_dirty.size() - 1; ii >= 0; ii--) { // pop the next rectangle from the dirty list - Rectangle mr = (Rectangle)_dirty.remove(0); + Rectangle mr = (Rectangle)_dirty.remove(ii); // merge in any overlapping rectangles - for (int ii = 0; ii < _dirty.size(); ii++) { - Rectangle r = (Rectangle)_dirty.get(ii); + for (int jj = ii - 1; jj >= 0; jj--) { + Rectangle r = (Rectangle)_dirty.get(jj); if (mr.intersects(r)) { // remove the overlapping rectangle from the list - _dirty.remove(ii--); + _dirty.remove(jj); + ii--; // grow the merged dirty rectangle mr.add(r); }