Github user stevedlawrence commented on a diff in the pull request:
https://github.com/apache/incubator-daffodil/pull/12#discussion_r154103501
--- Diff:
daffodil-runtime1/src/main/scala/edu/illinois/ncsa/daffodil/processors/EvByteOrder.scala
---
@@ -60,22 +59,27 @@ class Ok private () extends Serializable {
}
object Ok extends Ok()
-class CheckByteAndBitOrderEv(t: TermRuntimeData, bitOrder: BitOrder,
maybeByteOrder: Maybe[ByteOrderEv])
+class CheckByteAndBitOrderEv(t: TermRuntimeData, bitOrder: BitOrder)
extends Evaluatable[Ok](t)
with InfosetCachedEvaluatable[Ok] { // can't use unit here, not <: AnyRef
- override lazy val runtimeDependencies = maybeByteOrder.toList
+ override lazy val runtimeDependencies = Nil
- final protected def compute(state: ParseOrUnparseState): Ok = {
- if (maybeByteOrder.isEmpty) return Ok
- val byteOrderEv = maybeByteOrder.get
- val byteOrder = byteOrderEv.evaluate(state)
- bitOrder match {
- case BitOrder.MostSignificantBitFirst => // ok
- case BitOrder.LeastSignificantBitFirst =>
- if (byteOrder =:= ByteOrder.BigEndian) {
- t.schemaDefinitionError("Bit order 'leastSignificantBitFirst'
requires byte order 'littleEndian', but byte order was '%s'.", byteOrder)
+ override final protected def compute(state: ParseOrUnparseState): Ok = {
+ t match {
+ case erd: ElementRuntimeData => {
+ if (erd.maybeByteOrderEv.isEmpty) return Ok
--- End diff --
Should avoid using return. I guess this was here originally, but since your
modifying this code, it would be good to fix.
---