From a5863e6497fdad326e36b75ee275079be0e3713b Mon Sep 17 00:00:00 2001 From: Kevin Rushforth Date: Mon, 18 Jun 2007 22:15:49 +0000 Subject: Fix issue 496: Big performance hit in VirtualUniverse.getNodeId git-svn-id: https://svn.java.net/svn/j3d-core~svn/trunk@855 ba19aa83-45c5-6ac9-afd3-db810772062c --- src/classes/share/javax/media/j3d/VirtualUniverse.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/classes/share/javax/media/j3d/VirtualUniverse.java b/src/classes/share/javax/media/j3d/VirtualUniverse.java index f8f736f..3928908 100644 --- a/src/classes/share/javax/media/j3d/VirtualUniverse.java +++ b/src/classes/share/javax/media/j3d/VirtualUniverse.java @@ -609,8 +609,10 @@ public class VirtualUniverse extends Object { str = Long.toString(nodeIdCount); nodeIdCount++; } else { - str = (String) nodeIdFreeList.lastElement(); - nodeIdFreeList.removeElement(str); + // Issue 496: Remove last object using index to avoid performance + // hit of a needless linear search. + int idx = nodeIdFreeList.size() - 1; + str = (String) nodeIdFreeList.remove(idx); } return(str); } -- cgit v1.2.3