[Mapguide-trac] [mapguide-trac] #2781: Find a way to not leak ACE/xerces headers/definitions in MapGuide common headers

MapGuide Open Source trac_mapguide at osgeo.org
Sat Jun 2 08:49:47 PDT 2018


#2781: Find a way to not leak ACE/xerces headers/definitions in MapGuide common
headers
--------------------------+----------------------
 Reporter:  jng           |        Owner:  jng
     Type:  defect        |       Status:  closed
 Priority:  high          |    Milestone:  3.3
Component:  Build System  |      Version:  3.1.0
 Severity:  trivial       |   Resolution:  fixed
 Keywords:                |  External ID:
--------------------------+----------------------
Changes (by jng):

 * status:  assigned => closed
 * resolution:   => fixed


Comment:

 In [changeset:"9393" 9393]:
 {{{
 #!CommitTicketReference repository="" revision="9393"
 Introduce a new preprocessor symbol SWIG_PUBLIC_API

 With this symbol, we #ifdef out and forward-declare as much of ACE and
 xerces types and headers in our MapGuide common headers. The only ACE
 header that is leaked out now is the header for ACE_Recursive_Thread_Mutex
 as that is present as member of several classes in the public MapGuide API
 surface.

 In our SWIG binding projects, SWIG_PUBLIC_API is defined. All other
 consuming projects do not define this symbol so they see the original set
 of ACE and xerces headers.

 This change slightly breaks the SWIG C++ glue code for .net (which used
 un-qualified list), so our internal copy of SWIG is updated to use fully
 qualified list (std::list) and our various SWIG parameter files include
 the <list> header.

 This change eliminates the need for us to maintain a patched copy of
 TSRM/readdir.h for PHP, so that is removed.

 Fixes #2781
 }}}

-- 
Ticket URL: <https://trac.osgeo.org/mapguide/ticket/2781#comment:3>
MapGuide Open Source <http://mapguide.osgeo.org/>
MapGuide Open Source Internals


More information about the mapguide-trac mailing list