35 lines
1.1 KiB
Text
35 lines
1.1 KiB
Text
$NetBSD: patch-ae,v 1.1 2006/10/21 11:53:13 agc Exp $
|
|
|
|
--- ./async/refcnt.h.orig 2002-09-21 00:05:21.000000000 +0100
|
|
+++ ./async/refcnt.h
|
|
@@ -408,6 +408,8 @@ template<class T>
|
|
class ref : public refpriv, public refops<T> {
|
|
friend class refpriv;
|
|
|
|
+ refops<T>::p;
|
|
+
|
|
friend ref<T> mkref<T> (T *);
|
|
ref (T *pp, refcount *cc) : refpriv (cc) { p = pp; inc (); }
|
|
|
|
@@ -455,6 +457,8 @@ template<class T>
|
|
class ptr : public refpriv, public refops <T> {
|
|
friend class refpriv;
|
|
|
|
+ refops<T>::p;
|
|
+
|
|
void inc () const { if (c) (rinc (c)); }
|
|
void dec () const { if (c) (rdec (c)); }
|
|
|
|
@@ -509,10 +513,11 @@ public:
|
|
|
|
template<class T>
|
|
struct bssptr : ptr<T> {
|
|
+
|
|
// Don't initialize (assume we were 0 initialized in the BSS)
|
|
bssptr () : ptr<T> (__bss_init ()) {}
|
|
// Override the effects of destruction
|
|
- ~bssptr () { assert (globaldestruction); if (*this != NULL) Xleak (); }
|
|
+ ~bssptr () { assert (globaldestruction); if (*this != NULL) this->Xleak (); }
|
|
ptr<T> &operator= (refpriv::privtype *p) { return ptr<T>::operator= (p); }
|
|
template<class U> ptr<T> &operator= (const ptr<U> &r)
|
|
{ return ptr<T>::operator= (r); }
|