ssMergeBackward() — netty Function Reference
Architecture documentation for the ssMergeBackward() function in Bzip2DivSufSort.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 67ff73e6_3a21_9a09_e1e6_cf6b42d443c0["ssMergeBackward()"] 5a60cb70_bf06_95bf_9c73_ed3a4dc24eba["Bzip2DivSufSort"] 67ff73e6_3a21_9a09_e1e6_cf6b42d443c0 -->|defined in| 5a60cb70_bf06_95bf_9c73_ed3a4dc24eba 1a5aae65_48a0_09a4_5acf_6d87a1e5c541["ssMerge()"] 1a5aae65_48a0_09a4_5acf_6d87a1e5c541 -->|calls| 67ff73e6_3a21_9a09_e1e6_cf6b42d443c0 8f2018df_9270_64c3_5e3a_0e80d1e98d92["ssBlockSwap()"] 67ff73e6_3a21_9a09_e1e6_cf6b42d443c0 -->|calls| 8f2018df_9270_64c3_5e3a_0e80d1e98d92 4de771c8_37be_d30e_9a72_bab498988da7["ssCompare()"] 67ff73e6_3a21_9a09_e1e6_cf6b42d443c0 -->|calls| 4de771c8_37be_d30e_9a72_bab498988da7 style 67ff73e6_3a21_9a09_e1e6_cf6b42d443c0 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java lines 605–730
private void ssMergeBackward(final int pa, int[] buf, final int bufoffset,
final int first, final int middle, final int last, final int depth) {
final int[] SA = this.SA;
int p1, p2;
int bufend;
int i, j, k;
int t;
int r;
int x;
bufend = bufoffset + (last - middle);
ssBlockSwap(buf, bufoffset, SA, middle, last - middle);
x = 0;
if (buf[bufend - 1] < 0) {
x |= 1;
p1 = pa + ~buf[bufend - 1];
} else {
p1 = pa + buf[bufend - 1];
}
if (SA[middle - 1] < 0) {
x |= 2;
p2 = pa + ~SA[middle - 1];
} else {
p2 = pa + SA[middle - 1];
}
for (t = SA[last - 1], i = last - 1, j = bufend - 1, k = middle - 1;;) {
r = ssCompare(p1, p2, depth);
if (r > 0) {
if ((x & 1) != 0) {
do {
SA[i--] = buf[j];
buf[j--] = SA[i];
} while (buf[j] < 0);
x ^= 1;
}
SA[i--] = buf[j];
if (j <= bufoffset) {
buf[j] = t;
return;
}
buf[j--] = SA[i];
if (buf[j] < 0) {
x |= 1;
p1 = pa + ~buf[j];
} else {
p1 = pa + buf[j];
}
} else if (r < 0) {
if ((x & 2) != 0) {
do {
SA[i--] = SA[k];
SA[k--] = SA[i];
} while (SA[k] < 0);
x ^= 2;
}
SA[i--] = SA[k];
SA[k--] = SA[i];
if (k < first) {
while (bufoffset < j) {
SA[i--] = buf[j];
buf[j--] = SA[i];
}
SA[i] = buf[j];
buf[j] = t;
return;
}
if (SA[k] < 0) {
x |= 2;
p2 = pa + ~SA[k];
} else {
p2 = pa + SA[k];
}
} else {
if ((x & 1) != 0) {
do {
SA[i--] = buf[j];
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does ssMergeBackward() do?
ssMergeBackward() is a function in the netty codebase, defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java.
Where is ssMergeBackward() defined?
ssMergeBackward() is defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java at line 605.
What does ssMergeBackward() call?
ssMergeBackward() calls 2 function(s): ssBlockSwap, ssCompare.
What calls ssMergeBackward()?
ssMergeBackward() is called by 1 function(s): ssMerge.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free