ice icon indicating copy to clipboard operation
ice copied to clipboard

Bogus handling on empty result in InvokeLambdaOutgoing

Open pepone opened this issue 1 year ago • 0 comments

{0, 0} is some times substitute by std::parit<const Byte*, const Byte*> which is ok, representing an empty buffer.

But we also replace it by using Outgoing = ::IceInternal::InvokeLambdaOutgoing<::Ice::Object::Ice_invokeResult>; in with case it ends up converted into a vector<Byte> {0, 0} witch is incorrect.

https://github.com/zeroc-ice/ice/blob/56528a30119fae9c03bb3cb19a7d0decae5f4ebf/cpp/include/Ice/Proxy.h#L166C38-L166C46

There is a similar issue with InvokePromiseOutgoing

https://github.com/zeroc-ice/ice/blob/56528a30119fae9c03bb3cb19a7d0decae5f4ebf/cpp/include/Ice/Proxy.h#L190

I included a fix for the later on https://github.com/zeroc-ice/ice/pull/1727

pepone avatar Jan 29 '24 13:01 pepone