Bug id 21027

Patch to fix misc clone issues, submitted by Nial Pemberton .. thanks!


git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/branches/REL_2_BRANCH@353182 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Avik Sengupta 2003-07-01 14:47:34 +00:00
parent ff5c232ffb
commit a67d868825
11 changed files with 38 additions and 4 deletions

View File

@ -267,4 +267,14 @@ public class ContinueRecord
protected void fillFields(byte [] ignored_parm1, short ignored_parm2, int ignored_parm3) protected void fillFields(byte [] ignored_parm1, short ignored_parm2, int ignored_parm3)
{ {
} }
/**
* Clone this record.
*/
public Object clone() {
ContinueRecord clone = new ContinueRecord();
clone.setData(field_1_data);
return clone;
}
} }

View File

@ -557,8 +557,13 @@ public class FormulaRecord
.append("\n"); .append("\n");
buffer.append(" .xf = ") buffer.append(" .xf = ")
.append(Integer.toHexString(getXFIndex())).append("\n"); .append(Integer.toHexString(getXFIndex())).append("\n");
buffer.append(" .value = ").append(getValue()) if (Double.isNaN(this.getValue()) && value_data != null)
.append("\n"); buffer.append(" .value (NaN) = ")
.append(org.apache.poi.util.HexDump.dump(value_data,0,0))
.append("\n");
else
buffer.append(" .value = ").append(getValue())
.append("\n");
buffer.append(" .options = ").append(getOptions()) buffer.append(" .options = ").append(getOptions())
.append("\n"); .append("\n");
buffer.append(" .zero = ").append(field_6_zero) buffer.append(" .zero = ").append(field_6_zero)
@ -610,6 +615,7 @@ public class FormulaRecord
Ptg ptg = (Ptg)((Ptg)field_8_parsed_expr.get(i)).clone(); Ptg ptg = (Ptg)((Ptg)field_8_parsed_expr.get(i)).clone();
rec.field_8_parsed_expr.add(i, ptg); rec.field_8_parsed_expr.add(i, ptg);
} }
rec.value_data = value_data;
rec.all_data = all_data; rec.all_data = all_data;
return rec; return rec;
} }

View File

@ -166,4 +166,14 @@ public class PasswordRecord
{ {
return this.sid; return this.sid;
} }
/**
* Clone this record.
*/
public Object clone() {
PasswordRecord clone = new PasswordRecord();
clone.setPassword(field_1_password);
return clone;
}
} }

View File

@ -318,6 +318,7 @@ public class Area3DPtg extends Ptg
ptg.field_3_last_row = field_3_last_row; ptg.field_3_last_row = field_3_last_row;
ptg.field_4_first_column = field_4_first_column; ptg.field_4_first_column = field_4_first_column;
ptg.field_5_last_column = field_5_last_column; ptg.field_5_last_column = field_5_last_column;
ptg.setClass(ptgClass);
return ptg; return ptg;
} }

View File

@ -321,6 +321,7 @@ public class AreaPtg
ptg.field_2_last_row = field_2_last_row; ptg.field_2_last_row = field_2_last_row;
ptg.field_3_first_column = field_3_first_column; ptg.field_3_first_column = field_3_first_column;
ptg.field_4_last_column = field_4_last_column; ptg.field_4_last_column = field_4_last_column;
ptg.setClass(ptgClass);
return ptg; return ptg;
} }

View File

@ -63,7 +63,8 @@ public class FuncPtg extends AbstractFunctionPtg{
FuncPtg ptg = new FuncPtg(); FuncPtg ptg = new FuncPtg();
//ptg.field_1_num_args = field_1_num_args; //ptg.field_1_num_args = field_1_num_args;
ptg.field_2_fnc_index = field_2_fnc_index; ptg.field_2_fnc_index = field_2_fnc_index;
return ptg; ptg.setClass(ptgClass);
return ptg;
} }
public int getSize() { public int getSize() {

View File

@ -52,6 +52,7 @@ public class FuncVarPtg extends AbstractFunctionPtg{
FuncVarPtg ptg = new FuncVarPtg(); FuncVarPtg ptg = new FuncVarPtg();
ptg.field_1_num_args = field_1_num_args; ptg.field_1_num_args = field_1_num_args;
ptg.field_2_fnc_index = field_2_fnc_index; ptg.field_2_fnc_index = field_2_fnc_index;
ptg.setClass(ptgClass);
return ptg; return ptg;
} }

View File

@ -121,6 +121,7 @@ public class NamePtg
ptg.field_1_ixti = field_1_ixti; ptg.field_1_ixti = field_1_ixti;
ptg.field_2_label_index = field_2_label_index; ptg.field_2_label_index = field_2_label_index;
ptg.field_3_zero = field_3_zero; ptg.field_3_zero = field_3_zero;
ptg.setClass(ptgClass);
return ptg; return ptg;
} }
} }

View File

@ -102,7 +102,7 @@ public class NameXPtg extends Ptg
public void writeBytes(byte [] array, int offset) public void writeBytes(byte [] array, int offset)
{ {
array[ offset + 0 ] = sid; array[ offset + 0 ] = (byte)(sid + ptgClass);
LittleEndian.putShort(array, offset + 1, field_1_ixals); LittleEndian.putShort(array, offset + 1, field_1_ixals);
LittleEndian.putShort(array,offset+3, field_2_ilbl); LittleEndian.putShort(array,offset+3, field_2_ilbl);
LittleEndian.putShort(array, offset + 5, field_3_reserved); LittleEndian.putShort(array, offset + 5, field_3_reserved);
@ -125,6 +125,7 @@ public class NameXPtg extends Ptg
ptg.field_1_ixals = field_1_ixals; ptg.field_1_ixals = field_1_ixals;
ptg.field_3_reserved = field_3_reserved; ptg.field_3_reserved = field_3_reserved;
ptg.field_2_ilbl = field_2_ilbl; ptg.field_2_ilbl = field_2_ilbl;
ptg.setClass(ptgClass);
return ptg; return ptg;
} }
} }

View File

@ -210,6 +210,7 @@ public class Ref3DPtg extends Ptg {
ptg.field_1_index_extern_sheet = field_1_index_extern_sheet; ptg.field_1_index_extern_sheet = field_1_index_extern_sheet;
ptg.field_2_row = field_2_row; ptg.field_2_row = field_2_row;
ptg.field_3_column = field_3_column; ptg.field_3_column = field_3_column;
ptg.setClass(ptgClass);
return ptg; return ptg;
} }

View File

@ -193,6 +193,7 @@ public class ReferencePtg extends Ptg
ReferencePtg ptg = new ReferencePtg(); ReferencePtg ptg = new ReferencePtg();
ptg.field_1_row = field_1_row; ptg.field_1_row = field_1_row;
ptg.field_2_col = field_2_col; ptg.field_2_col = field_2_col;
ptg.setClass(ptgClass);
return ptg; return ptg;
} }
} }