Here's a potential patch which solves this issue for me. It should, in
my estimation, be functionally equivalent. Though, I'm still curious as
to whether Ulrich gets a clean build without it, and if so, why.
Thoughts?
-- Matthew R. Trower
>From 35f1b6ad5d76effa03793d3e8ff9bbd756c22e46 Mon Sep 17 00:00:00 2001
From: "Matthew R. Trower" <d...@blackshard.net>
Date: Sun, 10 Jun 2018 21:39:42 -0500
Subject: [PATCH] nsgml: Resolve SunStudio symbol collision
---
cde/programs/nsgmls/Ptr.h | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/cde/programs/nsgmls/Ptr.h b/cde/programs/nsgmls/Ptr.h
index d8f2970a..22e42c1f 100644
--- a/cde/programs/nsgmls/Ptr.h
+++ b/cde/programs/nsgmls/Ptr.h
@@ -68,7 +68,7 @@ public:
Boolean operator!=(const T *p) const {
return ptr_ != p;
}
-private:
+protected:
T *ptr_;
};
@@ -93,7 +93,13 @@ public:
const T &operator*() const { return *Ptr<T>::pointer(); }
void swap(ConstPtr<T> &p) { Ptr<T>::swap(p); }
using Ptr<T>::isNull;
- using Ptr<T>::clear;
+ void clear() {
+ if (ptr_) {
+ if (ptr_->unref())
+ delete ptr_;
+ ptr_ = 0;
+ }
+ }
Boolean operator==(const Ptr<T> &p) const { return Ptr<T>::operator==(p); }
Boolean operator!=(const Ptr<T> &p) const { return Ptr<T>::operator!=(p); }
Boolean operator==(const ConstPtr<T> &p) const {
--
2.16.2
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
cdesktopenv-devel mailing list
cdesktopenv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel