[Nice-commit] Nice/src/gnu/bytecode SourceMap.java,1.3,1.4
Brought to you by:
bonniot
From: Arjan B. <ar...@us...> - 2005-02-10 17:00:43
|
Update of /cvsroot/nice/Nice/src/gnu/bytecode In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14813/F:/nice/src/gnu/bytecode Modified Files: SourceMap.java Log Message: Optimization of the SourceDebugExtension attribute size. Index: SourceMap.java =================================================================== RCS file: /cvsroot/nice/Nice/src/gnu/bytecode/SourceMap.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SourceMap.java 28 Nov 2003 14:49:37 -0000 1.3 --- SourceMap.java 10 Feb 2005 17:00:34 -0000 1.4 *************** *** 13,16 **** --- 13,18 ---- package gnu.bytecode; + import java.util.*; + /** A mapping from source files to the bytecode line numbers. *************** *** 28,31 **** --- 30,34 ---- buffer.append(classfile.getName()).append('\n'); buffer.append("Default\n*S Default\n*F\n"); + fileMap = new HashMap(); } *************** *** 71,78 **** private String currentFile = null; ! private int fileNumber = 0; private int firstLine = -1; private int lastLine = -1; private int outputBase = 1; /** --- 74,82 ---- private String currentFile = null; ! private int lastFileNumber = 0; private int firstLine = -1; private int lastLine = -1; private int outputBase = 1; + private Map fileMap; /** *************** *** 102,108 **** if (currentFile != null) { ! fileNumber++; ! buffer.append(fileNumber).append(' ').append(currentFile) ! .append('\n'); int len = lastLine - firstLine + 1; lines.append("" + firstLine + '#' + fileNumber + --- 106,110 ---- if (currentFile != null) { ! int fileNumber = writeFile(currentFile); int len = lastLine - firstLine + 1; lines.append("" + firstLine + '#' + fileNumber + *************** *** 113,115 **** --- 115,132 ---- } } + + private int writeFile(String file) + { + Integer fileNumber = (Integer)fileMap.get(file); + if (fileNumber == null) + { + lastFileNumber++; + fileNumber = new Integer(lastFileNumber); + fileMap.put(file, fileNumber); + } + + buffer.append(fileNumber.intValue()).append(' ').append(file).append('\n'); + return fileNumber.intValue(); + } + } |