@@ -1025,14 +1025,14 @@ namespace Aws
10251025 MessageAmendment connectAmendment (m_connectionConfig.GetConnectAmendment ().value ());
10261026 amendmentStorage.PrependHeaders (std::move (connectAmendment).GetHeaders ());
10271027
1028- // optional of a C structure is a terrible idea because it doesn't have a move which means
1029- // a correct-looking move out of the optional does not actually erase the C struct, leading to a
1030- // double free. For now, work around by copying the buffer and then erasing the source optional
1031- // by hand.
1032- amendmentStorage.SetPayload (connectAmendment.GetPayload ());
1028+ if (connectAmendment.GetPayload ().has_value ())
1029+ {
1030+ const auto &payload = connectAmendment.GetPayload ().value ();
10331031
1034- Crt::Optional<Crt::ByteBuf> noBuffer;
1035- connectAmendment.SetPayload (noBuffer);
1032+ Crt::Optional<Crt::ByteBuf> copiedPayload =
1033+ Crt::ByteBufNewCopy (payload.allocator , payload.buffer , payload.len );
1034+ amendmentStorage.SetPayload (copiedPayload);
1035+ }
10361036 }
10371037
10381038 s_fillNativeHeadersArray (amendmentStorage.GetHeaders (), headersArray, m_allocator);
@@ -2392,33 +2392,33 @@ namespace Aws
23922392 }
23932393
23942394 EventstreamResultVariantType::EventstreamResultVariantType ()
2395- : m_type(ResultType::NONE), m_modeledResult (nullptr ), m_modeledError(nullptr ),
2395+ : m_type(ResultType::NONE), m_modeledResponse (nullptr ), m_modeledError(nullptr ),
23962396 m_rpcError ({EventStreamRpcStatusCode::EVENT_STREAM_RPC_SUCCESS, AWS_ERROR_SUCCESS})
23972397 {
23982398 }
23992399
24002400 EventstreamResultVariantType::EventstreamResultVariantType (
24012401 Crt::ScopedResource<AbstractShapeBase> &&modeledResult) noexcept
2402- : m_type(ResultType::OPERATION_RESPONSE), m_modeledResult (std::move(modeledResult)),
2402+ : m_type(ResultType::OPERATION_RESPONSE), m_modeledResponse (std::move(modeledResult)),
24032403 m_modeledError(nullptr ),
24042404 m_rpcError({EventStreamRpcStatusCode::EVENT_STREAM_RPC_SUCCESS, AWS_ERROR_SUCCESS})
24052405 {
24062406 }
24072407
24082408 EventstreamResultVariantType::EventstreamResultVariantType (
24092409 Crt::ScopedResource<OperationError> &&modeledError) noexcept
2410- : m_type(ResultType::OPERATION_ERROR), m_modeledResult (nullptr ), m_modeledError(std::move(modeledError)),
2410+ : m_type(ResultType::OPERATION_ERROR), m_modeledResponse (nullptr ), m_modeledError(std::move(modeledError)),
24112411 m_rpcError({EventStreamRpcStatusCode::EVENT_STREAM_RPC_SUCCESS, AWS_ERROR_SUCCESS})
24122412 {
24132413 }
24142414
24152415 EventstreamResultVariantType::EventstreamResultVariantType (RpcError rpcError) noexcept
2416- : m_type(ResultType::RPC_ERROR), m_modeledResult (nullptr ), m_modeledError(nullptr ), m_rpcError(rpcError)
2416+ : m_type(ResultType::RPC_ERROR), m_modeledResponse (nullptr ), m_modeledError(nullptr ), m_rpcError(rpcError)
24172417 {
24182418 }
24192419
24202420 EventstreamResultVariantType::EventstreamResultVariantType (EventstreamResultVariantType &&rhs) noexcept
2421- : m_type(rhs.m_type), m_modeledResult (std::move(rhs.m_modeledResult )),
2421+ : m_type(rhs.m_type), m_modeledResponse (std::move(rhs.m_modeledResponse )),
24222422 m_modeledError(std::move(rhs.m_modeledError)), m_rpcError(rhs.m_rpcError)
24232423 {
24242424 }
@@ -2429,17 +2429,17 @@ namespace Aws
24292429 if (this != &rhs)
24302430 {
24312431 m_type = rhs.m_type ;
2432- m_modeledResult = std::move (rhs.m_modeledResult );
2432+ m_modeledResponse = std::move (rhs.m_modeledResponse );
24332433 m_modeledError = std::move (rhs.m_modeledError );
24342434 m_rpcError = rhs.m_rpcError ;
24352435 }
24362436
24372437 return *this ;
24382438 }
24392439
2440- AbstractShapeBase *EventstreamResultVariantType::GetModeledResult () const
2440+ AbstractShapeBase *EventstreamResultVariantType::GetModeledResponse () const
24412441 {
2442- return m_modeledResult .get ();
2442+ return m_modeledResponse .get ();
24432443 }
24442444
24452445 OperationError *EventstreamResultVariantType::GetModeledError () const
0 commit comments