瀏覽代碼

Fix bug #51273 - Hash codes can be negative when working on our own low memory hash for formula cell evaluation

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1128268 13f79535-47bb-0310-9956-ffa450edef68
pull/1/head
Nick Burch 13 年之前
父節點
當前提交
4410d044f0

+ 1
- 0
src/documentation/content/xdocs/status.xml 查看文件

@@ -34,6 +34,7 @@

<changes>
<release version="3.8-beta3" date="2011-??-??">
<action dev="poi-developers" type="fix">51273 - Formula Value Cache fix for repeated evaluations</action>
<action dev="poi-developers" type="add">51171 - Improved performance of SharedValueManager </action>
<action dev="poi-developers" type="fix">51236 - XSSF set colour support for black/white to match getter</action>
<action dev="poi-developers" type="add">51196 - Initial support for Spreadsheet Chart API</action>

+ 2
- 3
src/java/org/apache/poi/ss/formula/FormulaCellCacheEntrySet.java 查看文件

@@ -76,8 +76,7 @@ final class FormulaCellCacheEntrySet {


private static boolean addInternal(CellCacheEntry[] arr, CellCacheEntry cce) {

int startIx = cce.hashCode() % arr.length;
int startIx = Math.abs(cce.hashCode() % arr.length);

for(int i=startIx; i<arr.length; i++) {
CellCacheEntry item = arr[i];
@@ -130,7 +129,7 @@ final class FormulaCellCacheEntrySet {
// else - usual case
// delete single element (without re-hashing)

int startIx = cce.hashCode() % arr.length;
int startIx = Math.abs(cce.hashCode() % arr.length);

// note - can't exit loops upon finding null because of potential previous deletes
for(int i=startIx; i<arr.length; i++) {

Loading…
取消
儲存