ssMerge() — netty Function Reference
Architecture documentation for the ssMerge() function in Bzip2DivSufSort.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 1a5aae65_48a0_09a4_5acf_6d87a1e5c541["ssMerge()"] 5a60cb70_bf06_95bf_9c73_ed3a4dc24eba["Bzip2DivSufSort"] 1a5aae65_48a0_09a4_5acf_6d87a1e5c541 -->|defined in| 5a60cb70_bf06_95bf_9c73_ed3a4dc24eba 6d0196f0_489e_2841_7424_79f0d208f4c9["subStringSort()"] 6d0196f0_489e_2841_7424_79f0d208f4c9 -->|calls| 1a5aae65_48a0_09a4_5acf_6d87a1e5c541 67ff73e6_3a21_9a09_e1e6_cf6b42d443c0["ssMergeBackward()"] 1a5aae65_48a0_09a4_5acf_6d87a1e5c541 -->|calls| 67ff73e6_3a21_9a09_e1e6_cf6b42d443c0 922d485f_ad6d_05c8_18aa_3cf8728675ee["ssMergeCheckEqual()"] 1a5aae65_48a0_09a4_5acf_6d87a1e5c541 -->|calls| 922d485f_ad6d_05c8_18aa_3cf8728675ee 9b4ab75c_f363_ca90_f1a9_20cc7e1e5996["ssMergeForward()"] 1a5aae65_48a0_09a4_5acf_6d87a1e5c541 -->|calls| 9b4ab75c_f363_ca90_f1a9_20cc7e1e5996 4de771c8_37be_d30e_9a72_bab498988da7["ssCompare()"] 1a5aae65_48a0_09a4_5acf_6d87a1e5c541 -->|calls| 4de771c8_37be_d30e_9a72_bab498988da7 c4528f45_3543_a91c_8ff0_9b8594168a0f["getIDX()"] 1a5aae65_48a0_09a4_5acf_6d87a1e5c541 -->|calls| c4528f45_3543_a91c_8ff0_9b8594168a0f 8f2018df_9270_64c3_5e3a_0e80d1e98d92["ssBlockSwap()"] 1a5aae65_48a0_09a4_5acf_6d87a1e5c541 -->|calls| 8f2018df_9270_64c3_5e3a_0e80d1e98d92 8c543c23_a272_46a8_3a5c_8091f5ca961f["StackEntry()"] 1a5aae65_48a0_09a4_5acf_6d87a1e5c541 -->|calls| 8c543c23_a272_46a8_3a5c_8091f5ca961f style 1a5aae65_48a0_09a4_5acf_6d87a1e5c541 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java lines 744–859
private void ssMerge(final int pa, int first, int middle, int last, int[] buf,
final int bufoffset, final int bufsize, final int depth) {
final int[] SA = this.SA;
final StackEntry[] stack = new StackEntry[STACK_SIZE];
int i, j;
int m, len, half;
int ssize;
int check, next;
for (check = 0, ssize = 0;;) {
if (last - middle <= bufsize) {
if (first < middle && middle < last) {
ssMergeBackward(pa, buf, bufoffset, first, middle, last, depth);
}
if ((check & 1) != 0) {
ssMergeCheckEqual(pa, depth, first);
}
if ((check & 2) != 0) {
ssMergeCheckEqual(pa, depth, last);
}
if (ssize == 0) {
return;
}
StackEntry entry = stack[--ssize];
first = entry.a;
middle = entry.b;
last = entry.c;
check = entry.d;
continue;
}
if (middle - first <= bufsize) {
if (first < middle) {
ssMergeForward(pa, buf, bufoffset, first, middle, last, depth);
}
if ((check & 1) != 0) {
ssMergeCheckEqual(pa, depth, first);
}
if ((check & 2) != 0) {
ssMergeCheckEqual(pa, depth, last);
}
if (ssize == 0) {
return;
}
StackEntry entry = stack[--ssize];
first = entry.a;
middle = entry.b;
last = entry.c;
check = entry.d;
continue;
}
for (m = 0, len = Math.min(middle - first, last - middle), half = len >> 1;
0 < len;
len = half, half >>= 1) {
if (ssCompare(pa + getIDX(SA[middle + m + half]),
pa + getIDX(SA[middle - m - half - 1]), depth) < 0) {
m += half + 1;
half -= (len & 1) ^ 1;
}
}
if (0 < m) {
ssBlockSwap(SA, middle - m, SA, middle, m);
i = j = middle;
next = 0;
if (middle + m < last) {
if (SA[middle + m] < 0) {
while (SA[i - 1] < 0) {
--i;
}
SA[middle + m] = ~SA[middle + m];
}
for (j = middle; SA[j] < 0;) {
++j;
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does ssMerge() do?
ssMerge() is a function in the netty codebase, defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java.
Where is ssMerge() defined?
ssMerge() is defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java at line 744.
What does ssMerge() call?
ssMerge() calls 7 function(s): StackEntry, getIDX, ssBlockSwap, ssCompare, ssMergeBackward, ssMergeCheckEqual, ssMergeForward.
What calls ssMerge()?
ssMerge() is called by 1 function(s): subStringSort.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free