$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 ref : public refpriv, public refops { friend class refpriv; + refops::p; + friend ref mkref (T *); ref (T *pp, refcount *cc) : refpriv (cc) { p = pp; inc (); } @@ -455,6 +457,8 @@ template class ptr : public refpriv, public refops { friend class refpriv; + refops::p; + void inc () const { if (c) (rinc (c)); } void dec () const { if (c) (rdec (c)); } @@ -509,10 +513,11 @@ public: template struct bssptr : ptr { + // Don't initialize (assume we were 0 initialized in the BSS) bssptr () : ptr (__bss_init ()) {} // Override the effects of destruction - ~bssptr () { assert (globaldestruction); if (*this != NULL) Xleak (); } + ~bssptr () { assert (globaldestruction); if (*this != NULL) this->Xleak (); } ptr &operator= (refpriv::privtype *p) { return ptr::operator= (p); } template ptr &operator= (const ptr &r) { return ptr::operator= (r); }