Code review comment for lp://staging/~gary-wzl77/net-cpp/dual_landing_support

Revision history for this message
Gary.Wang (gary-wzl77) wrote :

Thanks for your detailed reply. James.
Basically, from the results of abidiff,
making the two new methods(del/post) on Client into normal non-virtual methods is not enough due to http_client_test failed(segfaulting).

As new added three methods(pause/resume/abort_request_if) on Request class still have bad effect on the offset(+1)
in the vtable for Request::async_execute and Request::execute.
http://paste.ubuntu.com/23063717/

    the vtable offset of method virtual void core::net::http::impl::curl::Request::async_execute(const core::net::http::Request::Handler&, const

core::net::http::StreamingRequest::DataHandler&) changed from 9 to 12

    the vtable offset of method virtual core::net::http::Response core::net::http::impl::curl::Request::execute(const core::net::http::Request::ProgressHandler&, const

core::net::http::StreamingRequest::DataHandler&) changed from 8 to 11

That's why when i check the uploaded abidiff results the above two virtuals from Request have been offset by *three* instead of *two* in the vtable in the new version of the library.

moving pause/resume/abort_request_if from Request to Streaming_Request will fix above issue.

« Back to merge proposal