View | Details | Raw Unified | Return to bug 341499
Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo.java (-6 / +57 lines)
Lines 1258-1265 Link Here
1258
    	}
1258
    	}
1259
    	else {
1259
    	else {
1260
    		// use extra vector
1260
    		// use extra vector
1261
    		int vectorIndex ;
1261
    		int vectorIndex = (position / BitCacheSize) - 1;
1262
    		this.extra[2][vectorIndex = (position / BitCacheSize) - 1]
1262
    		if (this.extra == null) {
1263
    			int length = vectorIndex + 1;
1264
    			this.extra = new long[extraLength][];
1265
    			for (int j = 0; j < extraLength; j++) {
1266
    				this.extra[j] = new long[length];
1267
    			}
1268
    		}
1269
    		else {
1270
    			int oldLength; // might need to grow the arrays
1271
    			if (vectorIndex >= (oldLength = this.extra[0].length)) {
1272
    				for (int j = 0; j < extraLength; j++) {
1273
    					System.arraycopy(this.extra[j], 0,
1274
    						(this.extra[j] = new long[vectorIndex + 1]), 0,
1275
    						oldLength);
1276
    				}
1277
    			}
1278
    		}
1279
    		this.extra[2][vectorIndex]
1263
    		    |= (mask = 1L << (position % BitCacheSize));
1280
    		    |= (mask = 1L << (position % BitCacheSize));
1264
    		this.extra[4][vectorIndex] |= mask;
1281
    		this.extra[4][vectorIndex] |= mask;
1265
    		this.extra[3][vectorIndex] &= (mask = ~mask);
1282
    		this.extra[3][vectorIndex] &= (mask = ~mask);
Lines 1295-1302 Link Here
1295
    	}
1312
    	}
1296
    	else {
1313
    	else {
1297
    		// use extra vector
1314
    		// use extra vector
1298
    		int vectorIndex ;
1315
    		int vectorIndex = (position / BitCacheSize) - 1;
1299
    		this.extra[2][vectorIndex = (position / BitCacheSize) - 1]
1316
    		if (this.extra == null) {
1317
    			int length = vectorIndex + 1;
1318
    			this.extra = new long[extraLength][];
1319
    			for (int j = 0; j < extraLength; j++) {
1320
    				this.extra[j] = new long[length];
1321
    			}
1322
    		}
1323
    		else {
1324
    			int oldLength; // might need to grow the arrays
1325
    			if (vectorIndex >= (oldLength = this.extra[0].length)) {
1326
    				for (int j = 0; j < extraLength; j++) {
1327
    					System.arraycopy(this.extra[j], 0,
1328
    						(this.extra[j] = new long[vectorIndex + 1]), 0,
1329
    						oldLength);
1330
    				}
1331
    			}
1332
    		}
1333
    		this.extra[2][vectorIndex]
1300
    		    |= (mask = 1L << (position % BitCacheSize));
1334
    		    |= (mask = 1L << (position % BitCacheSize));
1301
    		this.extra[3][vectorIndex] |= mask;
1335
    		this.extra[3][vectorIndex] |= mask;
1302
    		this.extra[4][vectorIndex] &= (mask = ~mask);
1336
    		this.extra[4][vectorIndex] &= (mask = ~mask);
Lines 1339-1346 Link Here
1339
		}
1373
		}
1340
		else {
1374
		else {
1341
			// use extra vector
1375
			// use extra vector
1342
			int vectorIndex ;
1376
			int vectorIndex = (position / BitCacheSize) - 1;
1343
			this.extra[2][vectorIndex = (position / BitCacheSize) - 1]
1377
			if (this.extra == null) {
1378
				int length = vectorIndex + 1;
1379
				this.extra = new long[extraLength][];
1380
				for (int j = 0; j < extraLength; j++) {
1381
					this.extra[j] = new long[length];
1382
				}
1383
			}
1384
			else {
1385
				int oldLength; // might need to grow the arrays
1386
				if (vectorIndex >= (oldLength = this.extra[0].length)) {
1387
					for (int j = 0; j < extraLength; j++) {
1388
						System.arraycopy(this.extra[j], 0,
1389
							(this.extra[j] = new long[vectorIndex + 1]), 0,
1390
							oldLength);
1391
					}
1392
				}
1393
			}
1394
			this.extra[2][vectorIndex]
1344
			    |= (mask = 1L << (position % BitCacheSize));
1395
			    |= (mask = 1L << (position % BitCacheSize));
1345
			this.extra[5][vectorIndex] |= mask;
1396
			this.extra[5][vectorIndex] |= mask;
1346
			this.extra[3][vectorIndex] &= (mask = ~mask);
1397
			this.extra[3][vectorIndex] &= (mask = ~mask);

Return to bug 341499