/[Apache-SVN]
ViewVC logotype

Revision 1749781


Jump to revision: Previous Next
Author: aconway
Date: Wed Jun 22 20:41:49 2016 UTC (7 years, 10 months ago)
Changed paths: 9
Log Message:
QPID-7306: Conditional compile mismatch in broker and common libs.

Removed _IN_QPID_BROKER compile definition:

Inconsistently set for libqpidcommon (compiled .cpp files) and libqpidbroker (uses .h) files
  - The broker has a binary incompatible notion of what is in the library.

It sort-of works by accident:
   - shared_ptr<T> only contains a T*, the mismatch is effectively doing reinterpret_cast<T*>
   - plain T* works for op->, but doesn't guarantee no concurrent deletes.
   - we create and destroy shared_ptr in libraries with _IN_QPID_BROKER set so
     we get cleanup, and no cores if we're lucky but there is limited protection from races.

Was only used by management:
  - I think exposing non-shared ptr GetObject was a feature that never materialized,
  - if not we need a separate function or class for non-shared-ptr users.

Changed paths

Path Details
Directoryqpid/trunk/qpid/cpp/src/CMakeLists.txt modified , text changed
Directoryqpid/trunk/qpid/cpp/src/amqp.cmake modified , text changed
Directoryqpid/trunk/qpid/cpp/src/legacystore.cmake modified , text changed
Directoryqpid/trunk/qpid/cpp/src/linearstore.cmake modified , text changed
Directoryqpid/trunk/qpid/cpp/src/qpid/management/Manageable.h modified , text changed
Directoryqpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.h modified , text changed
Directoryqpid/trunk/qpid/cpp/src/qpid/store/CMakeLists.txt modified , text changed
Directoryqpid/trunk/qpid/cpp/src/rdma.cmake modified , text changed
Directoryqpid/trunk/qpid/cpp/src/tests/CMakeLists.txt modified , text changed

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26