Menu

#360 Missing symbols between 1.7.1 and 1.7.2 but no soname change

current stable SDK
closed-fixed
nobody
general (39)
1
2011-03-23
2011-02-20
No

Hi!

in 1.7.2 there are some exported symbols missing that were present in 1.7.1. This seems to be mostly comming from removing empty `virtual` D'Tors and C'Tors -- making them non-virtual default ones in cases like below:

--- a/source/Irrlicht/CMountPointReader.cpp
+++ b/source/Irrlicht/CMountPointReader.cpp
@@ -104,10 +97,6 @@ CMountPointReader::CMountPointReader(IFileSystem * parent, const io::path& basen
sort();
}

-CMountPointReader::~CMountPointReader()
-{
-
-}

//! returns the list of files
const IFileList* CMountPointReader::getFileList() const
--- a/source/Irrlicht/CMountPointReader.h
+++ b/source/Irrlicht/CMountPointReader.h
@@ -66,9 +63,6 @@ namespace io
CMountPointReader(IFileSystem *parent, const io::path& basename,
bool ignoreCase, bool ignorePaths);

- //! Destructor
- virtual ~CMountPointReader();
-
//! opens a file by index
virtual IReadFile* createAndOpenFile(u32 index);

+++
#MISSING: _ZN3irr2io17CMountPointReaderD2Ev@Base
#MISSING: _ZN3irr2io19CArchiveLoaderMountD2Ev@Base
#MISSING: _ZTCN3irr3gui10CGUIWindowE320_NS_2io26IAttributeExchangingObjectE@Base
#MISSING: _ZTCN3irr3gui13CGUIScrollBarE336_NS_2io26IAttributeExchangingObjectE@Base
#MISSING: _ZTCN3irr3gui14CGUIMessageBoxE416_NS_2io26IAttributeExchangingObjectE@Base
#MISSING: _ZTCN3irr3gui14CGUIStaticTextE328_NS_2io26IAttributeExchangingObjectE@Base
#MISSING: _ZTCN3irr3gui15CGUIEnvironmentE472_NS_2io26IAttributeExchangingObjectE@Base

Discussion

  • Christoph Egger

    Christoph Egger - 2011-03-04

    diff --git a/source/Irrlicht/CMountPointReader.cpp b/source/Irrlicht/CMountPointReader.cpp
    index a5a4b91..8ffec42 100644
    --- a/source/Irrlicht/CMountPointReader.cpp
    +++ b/source/Irrlicht/CMountPointReader.cpp
    @@ -23,6 +23,10 @@ CArchiveLoaderMount::CArchiveLoaderMount( io::IFileSystem* fs)
    #endif
    }

    +CArchiveLoaderMount::~CArchiveLoaderMount()
    +{
    +
    +}

    //! returns true if the file maybe is able to be loaded by this class
    bool CArchiveLoaderMount::isALoadableFileFormat(const io::path& filename) const
    @@ -97,6 +101,10 @@ CMountPointReader::CMountPointReader(IFileSystem * parent, const io::path& basen
    sort();
    }

    +CMountPointReader::~CMountPointReader()
    +{
    +
    +}

    //! returns the list of files
    const IFileList* CMountPointReader::getFileList() const
    diff --git a/source/Irrlicht/CMountPointReader.h b/source/Irrlicht/CMountPointReader.h
    index 0a4f0eb..62e89c4 100644
    --- a/source/Irrlicht/CMountPointReader.h
    +++ b/source/Irrlicht/CMountPointReader.h
    @@ -25,6 +25,8 @@ namespace io
    //! Constructor
    CArchiveLoaderMount(io::IFileSystem* fs);

    + virtual ~CArchiveLoaderMount();
    +
    //! returns true if the file maybe is able to be loaded by this class
    //! based on the file extension (e.g. ".zip")
    virtual bool isALoadableFileFormat(const io::path& filename) const;
    @@ -63,6 +65,8 @@ namespace io
    CMountPointReader(IFileSystem *parent, const io::path& basename,
    bool ignoreCase, bool ignorePaths);

    + virtual ~CMountPointReader();
    +
    //! opens a file by index
    virtual IReadFile* createAndOpenFile(u32 index);

     
  • Christoph Egger

    Christoph Egger - 2011-03-04

    Please also refrain from changing the size of public classes (adding member variables!)

     
  • Christian Stehno

    • priority: 5 --> 1
     
  • Christian Stehno

    As far as I know, default dtors can be virtual as well. And since the base dtor is virtual, all descendants should be as well. So only the local entry point has been removed, which is not exported from the library anyway. Please don't rely on internal functions.

     
  • Christian Stehno

    Ok, the missing change of the soname was indeed due to a missing variable in the Makefile. This is fixed now. However, we do not have any public classes outside the headers in include/. And these should not be altered in the bugfix branches.

     
  • Christian Stehno

    • status: open --> closed-fixed
     

Log in to post a comment.