From 2dcda062d98090b2ca35f58f737dca4bc65f342b Mon Sep 17 00:00:00 2001 From: aclement Date: Wed, 15 Feb 2006 09:41:19 +0000 Subject: [PATCH] optimization: made unpacking of the table lazy. With a minor change in AJ itself, this results in us only unpacking 15000 of the 39000 local variable table objects constructed during a build of shadows. Saving space and time. --- lib/bcel/bcel-src.zip | Bin 872095 -> 872478 bytes lib/bcel/bcel.jar | Bin 595228 -> 595683 bytes .../aspectj/weaver/ResolvedMemberImpl.java | 5 +++-- .../org/aspectj/weaver/bcel/BcelMethod.java | 16 ++++++++++++++-- .../org/aspectj/weaver/bcel/BcelShadow.java | 2 +- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/lib/bcel/bcel-src.zip b/lib/bcel/bcel-src.zip index 0dfc15ee91b742fe47e136927862dc7994468695..162657a4e01c1a3f7f9002d614973c9691011565 100644 GIT binary patch delta 8523 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 delta 8165 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 delta 8288 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