User: rinkrank
Date: 02/04/06 17:05:56
Modified: src/xjavadoc AbstractExecutableMember.java
Log:
-added logic to increase parameter flyweight pool size when needed
Revision Changes Path
1.10 +16 -3 xjavadoc/src/xjavadoc/AbstractExecutableMember.java
Index: AbstractExecutableMember.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/AbstractExecutableMember.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -w -r1.9 -r1.10
--- AbstractExecutableMember.java 4 Apr 2002 10:59:51 -0000 1.9
+++ AbstractExecutableMember.java 7 Apr 2002 01:05:55 -0000 1.10
@@ -100,7 +100,11 @@
/**
* @todo-javadoc Describe the field
*/
- private final static ParameterImpl[] _parameterPool = new
ParameterImpl[PARAMETER_POOL_SIZE];
+ private final static int PARAMETER_POOL_INCREMENT = 10;
+ /**
+ * @todo-javadoc Describe the field
+ */
+ private static ParameterImpl[] _parameterPool = new
ParameterImpl[PARAMETER_POOL_SIZE];
/**
@@ -178,8 +182,17 @@
parameters = new ParameterImpl[_parameterData.size() / 3];
for (int i = parameters.length - 1; i >= 0; i--) {
try {
+ if (_parameterPool.length <= i) {
+ // increase flyweight pool size
+ ParameterImpl[] newPool = new
ParameterImpl[_parameterPool.length + PARAMETER_POOL_INCREMENT];
+ System.arraycopy(_parameterPool, 0,
newPool, 0, _parameterPool.length);
+ for (int j = _parameterPool.length; j
< newPool.length; j++) {
+ newPool[j] = new
ParameterImpl();
+ }
+ _parameterPool = newPool;
+ }
+
_parameterPool[i].setState(this, i);
- // TODO increase pool size
parameters[i] = _parameterPool[i];
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("In member " +
qualifiedName() + ". Tried to set " + i + "th parameter. FIXME!");
@@ -367,7 +380,7 @@
}
static {
- for (int i = 0; i < PARAMETER_POOL_SIZE; i++) {
+ for (int i = 0; i < _parameterPool.length; i++) {
_parameterPool[i] = new ParameterImpl();
}
}
_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel