/* * Copyright (c) 2001, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions.
*/
* This code * ANY WARRANTY; * FITNESS FOR A PARTICULAR PURPOSE. See the GNU * version * You * 2 along with this * Inc., 51 Franklin * Please contact Oracle * or visit www.oracle.com */
class SDE { privatestaticfinal * ()201 2 Oracle andoritsrights reserved privatestaticfinal
p static =java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
staticboolean ;
/* for C capatibility */ staticfinal String NullString * local file
staticclass==){ int fileId;} java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
String;
String sourcePath; // do not read - use accessor ch= /
}e {
/** * Return the sourcePath, computing it if not set. * If set, convert '/' in the sourcePath to the * local file separator.
*/
String getSourcePath(ReferenceTypeImplversion a inLICENSEjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
(){
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 private java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
} else {
} forinti=0 <.() +){ char ch = sourcePath.charAt(i);
sbFile)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
} else {
sb * Default sourceName (the first *
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 21 /* one past end */1java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
/
the,computing to the starting
always (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
L< .() ;
}
privatestaticclass LineTableRecord { int jplsStart; int jplsEnd;
resultfor( i=0 sourcePathlength ++ int;
@SuppressWarnings("unused") intnjplsEnd int fileId;
}
private class {
String id; intfileIndex int lineIndex; ()java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
}
classif lti<0) { privatefinalint sti; /* stratum index */
;
End
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
String id() {
jplsLineuppressWarnings"
}
Stringid; return =;
}
/** * Return all the sourceNames for this stratum. * Look from our starting fileIndex up to the starting * fileIndex of next stratum - can do this since there * is always a terminator stratum. * Default sourceName (the first one) must be first.
*/
List<String> sourceNames(ReferenceTypeImpl refType) { int i;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /* one past end */ int fileIndexEndreturn stratumTablestiid
List this = ti for * Look from LineStratum other = (LineStratum)obj return (lti = * fileIndex of next stratum - * is always a terminator stratum. * Default sourceName (the first one) must (sti ==
result.add(fileTable[i] }
} return result return stiLineNumber(sti, lti, }
}
/** * Return all the sourcePaths for this stratum. * Look from our starting fileIndex up to the starting * fileIndex of next stratum - can do this since there * is always a terminator stratum. * Default sourcePath (the first one) must be first.
*/
* LookifsourceName=nulljava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 int/
=java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 61
past * int fileIndexEnd ( java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
List<java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 9 forintlti= (sti jplsLinejava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
sourceName ftr}{
} return result;
}
LineStratum lineStratum(ReferenceTypeImpl refType,
sourceName( { int ltireturn jplsLinejava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0 returnull
} else { returnnew(sti , refType int;
}
} java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 41
LineStratum privatefinal 2
private final int lti; /* line table index */ thisjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
SD .& private ; private String sourcePath = =.lineNumber&
privatereturnjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
this. ( thislti=lti this. ;
(){
}
publicboolean if (if( ! ){
(); return sourceDebugExtension(sdePos+java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
(sti == other.sti) &&
(lineNumber() = }
(.otherefTypejava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
returnfalse;lineTable]fileId jplsLine" )java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
}
}
@Override
sourcePath .(refType; return
}
int (); returnvoid assureLineTableSize() {
}
/** * Fetch the source name and source path for * this line, converting or constructing * the source path if needed.
*/ inti if( !=null { // already done return;
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
f( )
( = 1{ thrownew InternalError
Bad idjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
lineTablelti. ": "+jplsLinejava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
}
=fileTable ;
sourceName = ftr.sourceName; finalStringoid()java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
}
StringsourceName() java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
getSourceInfo; return sourceName;
}
private FileTableRecord newTable =newFileTableRecord[newLen; privateint baseStratumIndex = -2; /* so as not to match -1 above */ for(i =0;i<len +i) java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
SDE ; this.sourceDebugExtension ;
createProxyForAbsentSDE();
[ new[]java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
)
newTable (java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
syntaxjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
} return;
}
void(){ int len = lineTable == null? (;
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 int i;
newLen=len=0 INIT_SIZE_LINE:len*2java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
LineTableRecord[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
; ++i java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 for = ; i < (); ++i {
} for (; i < newLen; ++i) {
newTable[i] = newif stratumTable[].id.equals(stratumId)){
}
lineTable =newTable;
}
}
void assureFileTableSize() { int len = fileTable == null? 0 }
(java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
} int newLen = len == java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
FileTableRecord = FileTableRecordnewLen; for (i = 0; i < len; ++i) {
newTablejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
} for (; i < newLen; StratumTableRecordrecstratumTablejava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
* * assureLineTableSize()
}
fileTable * assureFileTableSize * *
} * Needed * * lineIndex
* * *
void int = stratumTable= null0 .length if( = len){ int i;
((ch=sdePeek()) == '' |( ='t')java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
StratumTableRecordjava.lang.StringIndexOutOfBoundsException: Range [30, 31) out of bounds for length 16 for(i=0 <len +) {
newTable[i] = stratumTable[i];
} for (; i < newLen; ++i) {
newTable[i] = new StratumTableRecord( }
}
stratumTable = newTable;
}
}
String readLine() if (ch =='\') &&(sdePeek() = 'n') java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
StringBuilder sb= newStringBuilder)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
(java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
ignoreWhite(); while (((ch = sdeRead()) != '\n') && (ch != '\r
sb(java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
/ if ((ch == '\r' fileTable[].fileId=fileId
sdeRead)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
();// leading white return sb.toString }
}
privateint defaultStratumTableIndex() { ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
defaultStratumIndex =
stratumTableIndexdefaultStratumId)
} int fileId;
}
int String; inti
returndefaultStratumTableIndex(;
} fori ;i<() +){ if (stratumTable[ )java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
(=)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
}
} return defaultStratumTableIndex();
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Stratum stratum(String stratumID) {
,int,java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 returnlineIndex ;
}
<> availableStrata) {
<>strata >;
forint ; stratumIndex-1); +i
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
strata.add(rec.id);
} return;
}
/***************************** * below functions/methods are written to compile under either Java or C * * Needed support functions: * sdePeek() * sdeRead() * sdeAdvance() * readLine() * assureLineTableSize() * assureFileTableSize() * assureStratumTableSize() * syntax() * * stratumTableIndex(String) * * Needed support variables: * lineTable * lineIndex * fileTable * fileIndex * currentFileId * * Needed types: * String * * Needed constants: * NullString
*/
void(){ char ch;
while (((ch = sdePeek()) == ' ') || (ch == '\t')) (sdePeek( = #'
sdeAdvance();
}
java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
void ignoreLinesdeAdvance)java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
ch
while(ch () ='n
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 /* check for CR LF */ if(ch= \r)& ='n) {
sdeAdvancesdeAdvance
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
readNumber { int value = 0; char ch;
ignoreWhite(); while(ch () = '' &ch= 9) {
sdeAdvance();
value = (value * 10) + ch - '0';
}
ignoreWhite(); return njplsStart lineCount1java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
}
void storeFile * is in stratumId - so, store the current java.lang.StringIndexOutOfBoundsException: Range [0, 54) out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
f]fileId;
fileTable[fileIndex].sourceName = sourceName;
fileTable[fileIndex].sourcePath = sourcePath;
;
}
void fileLine() { int hasAbsolute = 0; /* acts as boolean */ int fileId;
String sourceName;
String [stratumIndex.fileIndex =fileIndexjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
/* is there an absolute filename? */ if readLine
sdeAdvance()
= ;
}
=readNumber;
sourceName = readLine(); if (hasAbsolute == 1) {
sourcePath = readLine();
}
storeFile(fileId ();
}
voidstoreLine( jplsStart jplsEndintjplsLineInc, int njplsStart, int njplsEnd(java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
assureLineTableSize(); void({
ignoreLine;
lineTable[lineIndex].jplsLineInc = jplsLineInc;
lineTable[lineIndex].njplsStart = njplsStart;
[lineIndex].njplsEnd=njplsEnd
lineTable[lineIndex] ()! 'java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
+;
}void(
/** * Parse line translation info. Syntax is * <NJ-start-line> [ # <file-id> ] [ , <line-count> ] : * <J-start-line> [ , <line-increment> ] CR
*/ void lineLine() { int = 1java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
int/** int jplsStart;
njplsStart = readNumber();
/* is there a fileID? */ if (sdePeek() == '#
()
currentFileId = readNumber(( ''|
}
/* is there a line count? */ } if sdePeek( == ,' {
)java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
;
}
if <; +)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
syntax;
ifjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
storeLine for( ; i<len+i java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
jplsStart + (lineCount * lineIncrement) - lineSection()java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
lineIncrementbreak[ FileTableRecord
njplsStart,
njplsStart + lineCount -1,
currentFileId);
}
/** * Until the next stratum section, everything after this * is in stratumId - so, store the current indices.
*/
oid storeStratum(StringstratumId(; /* remove redundant strata */ if if (( () java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
== fileIndex defaultStratumIndexjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
(stratumTable[java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 37
==) /* nothing changed overwrite it */
}
} i; /* store the results */
assureStratumTableSize}
stratumTable[stratumIndex].fileIndex = fileIndexsbappend)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
stratumTable[stratumIndex if (jplsLine>lineTablei.) &java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
+;
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 5
}
/** * The beginning of a stratum's info
*/ void()java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
}
}
void java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}
()
(jplsLinelineTable].)iftratumTable[]equalsstratumId){
}
lineTable.))java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
(java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
ignoreLine()for>=ArrayListjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 while( =') java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
lineLine(}
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/** * Ignore a section we don't know about.
*/ void java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ignoreLine * sdePeek( return; while (sdePeek() ! * assureLineTableSize()
ignoreLine();
} *
}
/** * A base "Java" stratum is always available, though * it is not in the SourceDebugExtension. * Create the base stratum.
*/ void createJavaStratum * Needed constants:
baseStratumIndex = stratumIndex(sdePeek() != '*') {
storeStratum(BASE_STRATUM_NAME);
storeFile(1, jplsFilename, NullString); /* JPL line numbers cannot exceed 65535 */
storeLine(1, 65536, 1, 1, 65536, 1);
storeStratum("Aux"); /* in case they don't declare */
}
/** * Decode a SourceDebugExtension which is in SourceMap format. * This is the entry point into the recursive descent parser.
*/ void decode() { /* check for "SMAP" - allow EOF if not ours */ if ((sourceDebugExtension.length() < 4) ||
(sdeRead() != 'S') ||
(sdeRead() != 'M') ||
(sdeRead() != 'A') ||
(sdeRead() != 'P')) { return; /* not our info */
}
ignoreLine(); /* flush the rest */
jplsFilename = readLine();
defaultStratumId = readLine();
createJavaStratum(); while (true) { if (sdeRead() != '*') {
syntax();
} switch (sdeRead()) { case'S':
stratumSection(); break; case'F':
fileSection(); break; case'L':
lineSection(); break; case'E': /* set end points */
storeStratum("*terminator*");
isValid = true; return; default:
ignoreSection();
}
}
}
privateint stiLineTableIndex(int sti, int jplsLine) { int i; int lineIndexStart; int lineIndexEnd;
lineIndexStart = stratumTable[sti].lineIndex; /* one past end */
lineIndexEnd = stratumTable[sti+1].lineIndex; for (i = lineIndexStart; i < lineIndexEnd; ++i) { if ((jplsLine >= lineTable[i].jplsStart) &&
(jplsLine <= lineTable[i].jplsEnd)) { return i;
}
} return -1;
}
privateint stiLineNumber(int sti, int lti, int jplsLine) { return lineTable[lti].njplsStart +
(((jplsLine - lineTable[lti].jplsStart) /
lineTable[lti].jplsLineInc));
}
privateint fileTableIndex(int sti, int fileId) { int i; int fileIndexStart = stratumTable[sti].fileIndex; /* one past end */ int fileIndexEnd = stratumTable[sti+1].fileIndex; for (i = fileIndexStart; i < fileIndexEnd; ++i) { if (fileTable[i].fileId == fileId) { return i;
}
} return -1;
}
privateint stiFileTableIndex(int sti, int lti) { return fileTableIndex(sti, lineTable[lti].fileId);
}
boolean isValid() { return isValid;
}
}
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.10Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.