jgvariant-ostree: Handle non-canonical endianness in static deltas.
Change-Id: I333fce6d6f4df995d6d965261bb66e50c116f02d
diff --git a/jgvariant-ostree/src/main/java/eu/mulk/jgvariant/ostree/DeltaMetaEntry.java b/jgvariant-ostree/src/main/java/eu/mulk/jgvariant/ostree/DeltaMetaEntry.java
index 0eaea73..7269a80 100644
--- a/jgvariant-ostree/src/main/java/eu/mulk/jgvariant/ostree/DeltaMetaEntry.java
+++ b/jgvariant-ostree/src/main/java/eu/mulk/jgvariant/ostree/DeltaMetaEntry.java
@@ -49,10 +49,10 @@
private static final Decoder<DeltaMetaEntry> DECODER =
Decoder.ofStructure(
DeltaMetaEntry.class,
- Decoder.ofInt().withByteOrder(ByteOrder.LITTLE_ENDIAN), // FIXME: non-canonical
+ Decoder.ofInt(),
Checksum.decoder(),
- Decoder.ofLong().withByteOrder(ByteOrder.LITTLE_ENDIAN), // FIXME: non-canonical
- Decoder.ofLong().withByteOrder(ByteOrder.LITTLE_ENDIAN), // FIXME: non-canonical
+ Decoder.ofLong(),
+ Decoder.ofLong(),
Decoder.ofByteArray().map(DeltaMetaEntry::parseObjectList));
private static List<DeltaObject> parseObjectList(byte[] bytes) {
@@ -71,9 +71,16 @@
/**
* Acquires a {@link Decoder} for the enclosing type.
*
+ * <p><strong>Note:</strong> This decoder has an unspecified {@link ByteOrder}.
+ *
* @return a possibly shared {@link Decoder}.
*/
public static Decoder<DeltaMetaEntry> decoder() {
return DECODER;
}
+
+ DeltaMetaEntry byteSwapped() {
+ // FIXME
+ return new DeltaMetaEntry(version, checksum, compressedSize, uncompressedSize, objects);
+ }
}