@ -143,7 +143,8 @@ public class BlameGenerator {
private int remaining ;
private int remaining ;
/** Blame is currently assigned to this source. */
/** Blame is currently assigned to this source. */
private Candidate currentSource ;
private Candidate outCandidate ;
private Region outRegion ;
/ * *
/ * *
* Create a blame generator for the repository and path ( relative to
* Create a blame generator for the repository and path ( relative to
@ -466,19 +467,19 @@ public class BlameGenerator {
* /
* /
public boolean next ( ) throws IOException {
public boolean next ( ) throws IOException {
// If there is a source still pending, produce the next region.
// If there is a source still pending, produce the next region.
if ( currentSource ! = null ) {
if ( outRegion ! = null ) {
Region r = currentSource . regionList ;
Region r = outRegion ;
Region n = r . next ;
remaining - = r . length ;
remaining - = r . length ;
if ( n ! = null ) {
if ( r . next ! = null ) {
currentSource . regionList = n ;
outRegion = r . next ;
return true ;
return true ;
}
}
if ( currentSourc e. queueNext ! = null )
if ( outCandidat e. queueNext ! = null )
return result ( currentSourc e. queueNext ) ;
return result ( outCandidat e. queueNext ) ;
currentSource = null ;
outCandidate = null ;
outRegion = null ;
}
}
// If there are no lines remaining, the entire result is done,
// If there are no lines remaining, the entire result is done,
@ -520,7 +521,8 @@ public class BlameGenerator {
private boolean result ( Candidate n ) throws IOException {
private boolean result ( Candidate n ) throws IOException {
if ( n . sourceCommit ! = null )
if ( n . sourceCommit ! = null )
revPool . parseBody ( n . sourceCommit ) ;
revPool . parseBody ( n . sourceCommit ) ;
currentSource = n ;
outCandidate = n ;
outRegion = n . regionList ;
return true ;
return true ;
}
}
@ -847,12 +849,12 @@ public class BlameGenerator {
* @return current revision being blamed .
* @return current revision being blamed .
* /
* /
public RevCommit getSourceCommit ( ) {
public RevCommit getSourceCommit ( ) {
return currentSourc e. sourceCommit ;
return outCandidat e. sourceCommit ;
}
}
/** @return current author being blamed. */
/** @return current author being blamed. */
public PersonIdent getSourceAuthor ( ) {
public PersonIdent getSourceAuthor ( ) {
return currentSourc e. getAuthor ( ) ;
return outCandidat e. getAuthor ( ) ;
}
}
/** @return current committer being blamed. */
/** @return current committer being blamed. */
@ -863,12 +865,12 @@ public class BlameGenerator {
/** @return path of the file being blamed. */
/** @return path of the file being blamed. */
public String getSourcePath ( ) {
public String getSourcePath ( ) {
return currentSourc e. sourcePath . getPath ( ) ;
return outCandidat e. sourcePath . getPath ( ) ;
}
}
/** @return rename score if a rename occurred in {@link #getSourceCommit}. */
/** @return rename score if a rename occurred in {@link #getSourceCommit}. */
public int getRenameScore ( ) {
public int getRenameScore ( ) {
return currentSourc e. renameScore ;
return outCandidat e. renameScore ;
}
}
/ * *
/ * *
@ -878,7 +880,7 @@ public class BlameGenerator {
* { @link # getSourcePath ( ) } .
* { @link # getSourcePath ( ) } .
* /
* /
public int getSourceStart ( ) {
public int getSourceStart ( ) {
return currentSource . regionList . sourceStart ;
return outRegion . sourceStart ;
}
}
/ * *
/ * *
@ -888,7 +890,7 @@ public class BlameGenerator {
* { @link # getSourcePath ( ) } .
* { @link # getSourcePath ( ) } .
* /
* /
public int getSourceEnd ( ) {
public int getSourceEnd ( ) {
Region r = currentSource . regionList ;
Region r = outRegion ;
return r . sourceStart + r . length ;
return r . sourceStart + r . length ;
}
}
@ -897,7 +899,7 @@ public class BlameGenerator {
* blamed for providing . Line numbers use 0 based indexing .
* blamed for providing . Line numbers use 0 based indexing .
* /
* /
public int getResultStart ( ) {
public int getResultStart ( ) {
return currentSource . regionList . resultStart ;
return outRegion . resultStart ;
}
}
/ * *
/ * *
@ -908,7 +910,7 @@ public class BlameGenerator {
* than { @link # getResultStart ( ) } .
* than { @link # getResultStart ( ) } .
* /
* /
public int getResultEnd ( ) {
public int getResultEnd ( ) {
Region r = currentSource . regionList ;
Region r = outRegion ;
return r . resultStart + r . length ;
return r . resultStart + r . length ;
}
}
@ -919,7 +921,7 @@ public class BlameGenerator {
* { @code getSourceEnd ( ) - getSourceStart ( ) } .
* { @code getSourceEnd ( ) - getSourceStart ( ) } .
* /
* /
public int getRegionLength ( ) {
public int getRegionLength ( ) {
return currentSource . regionList . length ;
return outRegion . length ;
}
}
/ * *
/ * *
@ -930,7 +932,7 @@ public class BlameGenerator {
* applications will want the result contents for display to users .
* applications will want the result contents for display to users .
* /
* /
public RawText getSourceContents ( ) {
public RawText getSourceContents ( ) {
return currentSourc e. sourceText ;
return outCandidat e. sourceText ;
}
}
/ * *
/ * *
@ -951,7 +953,8 @@ public class BlameGenerator {
public void release ( ) {
public void release ( ) {
revPool . release ( ) ;
revPool . release ( ) ;
queue = null ;
queue = null ;
currentSource = null ;
outCandidate = null ;
outRegion = null ;
}
}
private boolean find ( RevCommit commit , PathFilter path ) throws IOException {
private boolean find ( RevCommit commit , PathFilter path ) throws IOException {