You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2016/12/08 09:01:16 UTC

[jira] [Commented] (PROTON-1372) Use PIMPL, not an interface, for event_loop

    [ https://issues.apache.org/jira/browse/PROTON-1372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15731601#comment-15731601 ] 

ASF subversion and git services commented on PROTON-1372:
---------------------------------------------------------

Commit f89d24d855fe684d97ef640235a04afdbb08c885 in qpid-proton's branch refs/heads/master from [~astitcher]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=f89d24d ]

PROTON-1372: [C++ binding] Pimpl event_loop
- To make sure that we maintain C++03/C++11 cross compatibility.


> Use PIMPL, not an interface, for event_loop
> -------------------------------------------
>
>                 Key: PROTON-1372
>                 URL: https://issues.apache.org/jira/browse/PROTON-1372
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: cpp-binding
>    Affects Versions: 0.14.0
>            Reporter: Andrew Stitcher
>            Assignee: Andrew Stitcher
>            Priority: Blocker
>             Fix For: 0.17.0
>
>
> This represents the event_loop aspect of the work below.
> ---
> Original issue description:
> If you have a libqpid-proton-cpp compiled with C\+\+11 and then link to it using a C\+\+03 and use the {{proton::container::schedule}} API then the application will crash. This is because there is an extra virtual function present in the middle of the C\+\+11 vtable compared to the C\+\+03 vtable. So that when used from '03 the wrong member function gets called.
> The extra member function is present because of conditional compilation dependent on the C\+\+ version doing the compilation.
> This should also be a problem the other way round too, so using a libqpid-proton-cpp compiled with C\+\+03 from C\+\+11 will cause there to be one fewer entry in the vtable, and using schedule will either get the wrong version of schedule or call an entry of the end of the vtable.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org