dungba88 commented on code in PR #12738: URL: https://github.com/apache/lucene/pull/12738#discussion_r1379938642
########## lucene/core/src/java/org/apache/lucene/util/fst/NodeHash.java: ########## @@ -110,25 +117,39 @@ public long add(FSTCompiler.UnCompiledNode<T> nodeIn) throws IOException { node = getFallback(nodeIn, hash); if (node != 0) { // it was already in fallback -- promote to primary - primaryTable.set(pos, node); + // TODO: Copy directly between 2 ByteBlockPool to avoid double-copy + primaryTable.set(pos, node, fallbackTable.getBytes(pos, lastFallbackNodeLength)); } else { // not in fallback either -- freeze & add the incoming node + long startAddress = fstCompiler.bytes.getPosition(); // freeze & add node = fstCompiler.addNode(nodeIn); + // TODO: Write the bytes directly from BytesStore // we use 0 as empty marker in hash table, so it better be impossible to get a frozen node // at 0: - assert node != 0; + assert node != FST.FINAL_END_NODE && node != FST.NON_FINAL_END_NODE; + byte[] buf = new byte[Math.toIntExact(node - startAddress + 1)]; Review Comment: `node` is the last address of the node and `startAddress` is its starting address. Hence we compute the length by `end - start + 1` (like if end == start then length must be 1) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org