mirror of
https://github.com/netbirdio/FreeBSD-ports.git
synced 2026-05-22 18:42:42 -07:00
Fix sysutils/zbackup in the face of modern C++
The "smart" pointer has had a serious bug for years, but the method with the bug isn't used :S Fix the bug, throw in some gratuitous C++ modernizations while we're at it. Patches submitted upstream.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= zbackup
|
||||
PORTVERSION= 1.4.4
|
||||
PORTREVISION= 15
|
||||
PORTREVISION= 16
|
||||
CATEGORIES= sysutils
|
||||
|
||||
MAINTAINER= ports@FreeBSD.org
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
--- sptr.hh.orig 2015-09-16 07:28:04 UTC
|
||||
+++ sptr.hh
|
||||
@@ -25,9 +25,9 @@ class sptr_base
|
||||
|
||||
public:
|
||||
|
||||
- sptr_base(): p( 0 ), count( 0 ) {}
|
||||
+ sptr_base(): p( nullptr ), count( nullptr ) {}
|
||||
|
||||
- sptr_base( T * p_ ): p( p_ ), count( p ? new unsigned( 1 ) : 0 )
|
||||
+ sptr_base( T * p_ ): p( p_ ), count( p ? new unsigned( 1 ) : nullptr )
|
||||
{
|
||||
}
|
||||
|
||||
@@ -48,27 +48,27 @@ class sptr_base
|
||||
{
|
||||
delete count;
|
||||
|
||||
- count = 0;
|
||||
+ count = nullptr;
|
||||
|
||||
if ( p )
|
||||
{
|
||||
T * p_ = p;
|
||||
|
||||
- p = 0;
|
||||
+ p = nullptr;
|
||||
|
||||
delete p_;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
- p = 0;
|
||||
- count = 0;
|
||||
+ p = nullptr;
|
||||
+ count = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unsigned use_count() const
|
||||
- { return count; }
|
||||
+ { return *count; }
|
||||
|
||||
sptr_base & operator = ( sptr_base const & other )
|
||||
{ if ( &other != this ) { reset(); p = other.p; count = other.count; increment(); }
|
||||
Reference in New Issue
Block a user