tag 925782 + patch
thanks
Hi,
attached is a patch that fixes the FTBFS with g++-9.
Best regards,
Joachim
Index: mp3check-0.8.7/texception.h
===================================================================
--- mp3check-0.8.7.orig/texception.h
+++ mp3check-0.8.7/texception.h
@@ -38,10 +38,10 @@ extern "C" {
#define TExceptionN(n) public: virtual const char *name() const { return #n; }
#define TExceptionM(m) public: virtual const char *message() const { return m; }
-#define TExceptionM1(m,a) public: virtual const char *message() const { char *buf; asprintf(&buf, m, a); return buf; }
-#define TExceptionM2(m,a,b) public: virtual const char *message() const { char *buf; asprintf(&buf, m, a,b); return buf; }
-#define TExceptionM3(m,a,b,c) public: virtual const char *message() const { char *buf; asprintf(&buf, m, a,b,c); return buf; }
-#define TExceptionM4(m,a,b,c,d) public: virtual const char *message() const { char *buf; asprintf(&buf, m, a,b,c,d); return buf; }
+#define TExceptionM1(m,a) public: virtual const char *message() const { char *buf; int result = asprintf(&buf, m, a); return result != -1 ? buf : "asprintf failure"; }
+#define TExceptionM2(m,a,b) public: virtual const char *message() const { char *buf; int result = asprintf(&buf, m, a,b); return result != -1 ? buf : "asprintf failure"; }
+#define TExceptionM3(m,a,b,c) public: virtual const char *message() const { char *buf; int result = asprintf(&buf, m, a,b,c); return result != -1 ? buf : "asprintf failure"; }
+#define TExceptionM4(m,a,b,c,d) public: virtual const char *message() const { char *buf; int result = asprintf(&buf, m, a,b,c,d); return result != -1 ? buf : "asprintf failure"; }
// base class of all exceptions
class TException {
Index: mp3check-0.8.7/tstring.cc
===================================================================
--- mp3check-0.8.7.orig/tstring.cc
+++ mp3check-0.8.7/tstring.cc
@@ -111,7 +111,7 @@ tstring::Rep *tstring::Rep::clone(size_t
tstring::Rep *tstring::Rep::create(size_t tmem) {
size_t m = sizeof(Rep) << 1;
while((m - 1 - sizeof(Rep)) < tmem) m <<= 1;
- Rep *p = new (m - 1 - sizeof(Rep)) Rep;
+ Rep *p = new (/*tag*/ true, m - 1 - sizeof(Rep)) Rep;
p->mem = m - 1 - sizeof(Rep); p->ref = 1; p->vulnerable = false;
return p;
}
Index: mp3check-0.8.7/tstring.h
===================================================================
--- mp3check-0.8.7.orig/tstring.h
+++ mp3check-0.8.7/tstring.h
@@ -71,9 +71,12 @@ class tstring {
// static methods
// operator new for this class
- static void * operator new (size_t size, size_t tmem) {
+ // add a tag parameter to ensure that the signature of the delete operator does not collide with the (void*,size_t) overload
+ static void * operator new (size_t size, bool /*tag*/, size_t tmem) {
return ::operator new (size + tmem + 1);}
- static void operator delete (void *p, size_t) {
+ static void operator delete (void *p, bool /*tag*/, size_t) {
+ ::operator delete (p); }
+ static void operator delete (void *p) {
::operator delete (p); }
// create a new representation