You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After enabling precedence checks (sbe.enable.precedence.checks=true) part of the generated code does not work because of mistakes in the internal state management.
For example this will not work:
MessageType msg(buffer, len);
std::cout << msg;
Will throw an exception indicating incorrect use of attributes. What seems to be the root cause of the problem is initialization of the m_codedState variable inside the constructor. Because it is not set explicitly by the constructor(inside the operator << body), it's value becomes:
Which is obviously invalid as the constructor wraps the underlying buffer. It seems that the root cause is not setting the correct value of the m_codecState in the wrapping constructors.
The text was updated successfully, but these errors were encountered:
There were a couple of problems here:
1. "wrapping constructors" did not initialize the codec state (for
precedence checks) correctly, and
2. the methods returning a JSON encoded string would attempt to
transition twice.
These problems are now resolved.
I have also made a technically breaking change. I have removed an
unnecessary constructor that took in the codec state. I think it is
highly unlikely that anyone was using this constructor; therefore,
it should be okay to make the change.
There were a couple of problems here:
1. "wrapping constructors" did not initialize the codec state (for
precedence checks) correctly, and
2. the methods returning a JSON encoded string would attempt to
transition twice.
These problems are now resolved.
I have also made a technically breaking change. I have removed an
unnecessary constructor that took in the codec state. I think it is
highly unlikely that anyone was using this constructor; therefore,
it should be okay to make the change.
After enabling precedence checks (sbe.enable.precedence.checks=true) part of the generated code does not work because of mistakes in the internal state management.
For example this will not work:
Will throw an exception indicating incorrect use of attributes. What seems to be the root cause of the problem is initialization of the
m_codedState
variable inside the constructor. Because it is not set explicitly by the constructor(inside theoperator <<
body), it's value becomes:Which is obviously invalid as the constructor wraps the underlying buffer. It seems that the root cause is not setting the correct value of the
m_codecState
in the wrapping constructors.The text was updated successfully, but these errors were encountered: