This simplifies the PackIndex code, which is trying to quickly copy
an existing ObjectId into a MutableObjectId. Rather than having
the PackIndex violate the ObjectId's internals, expose a copy from
function similar to the other ones for copying from raw byte arrays
or hex formatted strings.
Change-Id: I142635cbece54af2ab83c58477961ce925dc8255
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* original entry, to copy id from
*/
MutableObjectId(MutableObjectId src) {
- this.w1 = src.w1;
- this.w2 = src.w2;
- this.w3 = src.w3;
- this.w4 = src.w4;
- this.w5 = src.w5;
+ fromObjectId(src);
}
/** Make this id match {@link ObjectId#zeroId()}. */
w5 = 0;
}
+ /**
+ * Copy an ObjectId into this mutable buffer.
+ *
+ * @param src
+ * the source id to copy from.
+ */
+ public void fromObjectId(AnyObjectId src) {
+ this.w1 = src.w1;
+ this.w2 = src.w2;
+ this.w3 = src.w3;
+ this.w4 = src.w4;
+ this.w5 = src.w5;
+ }
+
/**
* Convert an ObjectId from raw binary representation.
*
public MutableEntry cloneEntry() {
final MutableEntry r = new MutableEntry();
ensureId();
- r.idBuffer.w1 = idBuffer.w1;
- r.idBuffer.w2 = idBuffer.w2;
- r.idBuffer.w3 = idBuffer.w3;
- r.idBuffer.w4 = idBuffer.w4;
- r.idBuffer.w5 = idBuffer.w5;
+ r.idBuffer.fromObjectId(idBuffer);
r.offset = offset;
return r;
}