1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-15 07:56:36 +00:00

Add visibility to C++ exceptions to prevent crashes with applications

using libkcddb.

PR:	211630
Submitted by:	Adriaan de Groot <groot@kde.org>
This commit is contained in:
Jason E. Hale 2016-09-19 23:18:59 +00:00
parent 4b895ef634
commit dc5c4cb1ee
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=422468
2 changed files with 82 additions and 0 deletions

View File

@ -2,6 +2,7 @@
PORTNAME= libmusicbrainz
PORTVERSION= 5.1.0
PORTREVISION= 1
DISTVERSIONPREFIX= release-
CATEGORIES= audio
PKGNAMESUFFIX= 5

View File

@ -0,0 +1,81 @@
--- include/musicbrainz5/HTTPFetch.h.orig 2016-08-06 17:10:23.956575000 +0200
+++ include/musicbrainz5/HTTPFetch.h 2016-08-06 17:26:10.934640000 +0200
@@ -29,11 +29,23 @@
#include <string>
#include <vector>
+// Visibility patch derived from https://gcc.gnu.org/wiki/Visibility ,
+// extended for clang support.
+#if (__clang__) || (__GNUC__ >= 4)
+ #define DLL_PUBLIC __attribute__ ((visibility ("default")))
+ #define DLL_LOCAL __attribute__ ((visibility ("hidden")))
+#else
+ #define DLL_PUBLIC
+ #define DLL_LOCAL
+#endif
+
+
+
namespace MusicBrainz5
{
class CHTTPFetchPrivate;
- class CExceptionBase: public std::exception
+ class DLL_PUBLIC CExceptionBase: public std::exception
{
public:
CExceptionBase(const std::string& ErrorMessage, const std::string& Exception)
@@ -60,7 +72,7 @@
* Exception thrown when an error occurs connecting to web service
*/
- class CConnectionError: public CExceptionBase
+ class DLL_PUBLIC CConnectionError: public CExceptionBase
{
public:
CConnectionError(const std::string& ErrorMessage)
@@ -73,7 +85,7 @@
* Exception thrown when a connection to the web service times out
*/
- class CTimeoutError: public CExceptionBase
+ class DLL_PUBLIC CTimeoutError: public CExceptionBase
{
public:
CTimeoutError(const std::string& ErrorMessage)
@@ -86,7 +98,7 @@
* Exception thrown when an authentication error occurs
*/
- class CAuthenticationError: public CExceptionBase
+ class DLL_PUBLIC CAuthenticationError: public CExceptionBase
{
public:
CAuthenticationError(const std::string& ErrorMessage)
@@ -99,7 +111,7 @@
* Exception thrown when an error occurs fetching data
*/
- class CFetchError: public CExceptionBase
+ class DLL_PUBLIC CFetchError: public CExceptionBase
{
public:
CFetchError(const std::string& ErrorMessage)
@@ -112,7 +124,7 @@
* Exception thrown when an invalid request is made
*/
- class CRequestError: public CExceptionBase
+ class DLL_PUBLIC CRequestError: public CExceptionBase
{
public:
CRequestError(const std::string& ErrorMessage)
@@ -125,7 +137,7 @@
* Exception thrown when the requested resource is not found
*/
- class CResourceNotFoundError: public CExceptionBase
+ class DLL_PUBLIC CResourceNotFoundError: public CExceptionBase
{
public:
CResourceNotFoundError(const std::string& ErrorMessage)