stevedlawrence opened a new pull request, #841:
URL: https://github.com/apache/daffodil/pull/841

   Prior to these changes, the combination of layers and suspensions could 
cause issues with bit order checking, which could lead to suspensions trying to 
create new suspensions, which isn't allowed.
   
   - When creating layers, rather than writing directly to the current DOS 
stream, we instead create a new buffered DOS just for this layer. This ensures 
that the layer is written starting with a zero offset and no fragments or 
bitOreder state to cause confusion.
   - The original DOS is marked as finished, allowing the new layer DOS to be 
flushed to it when marked as finished. If the original DOS was direct, it would 
make this new layer DOS direct and so buffered data should be minimized.
   - We must create a clone of the UState that is passed into the layer 
creation functions as well as used to finish the original DOS. This ensures the 
new layer DOS and original DOS use the correct state snapshot if suspensions 
cause their evaluation and flushing of data to be delayed.
   
   DAFFODIL-726


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to