summaryrefslogtreecommitdiff
path: root/shell/source
diff options
context:
space:
mode:
Diffstat (limited to 'shell/source')
-rw-r--r--shell/source/win32/shlxthandler/ooofilt/propspec.cxx11
1 files changed, 8 insertions, 3 deletions
diff --git a/shell/source/win32/shlxthandler/ooofilt/propspec.cxx b/shell/source/win32/shlxthandler/ooofilt/propspec.cxx
index ed44bb8b22b9..f96d363d6542 100644
--- a/shell/source/win32/shlxthandler/ooofilt/propspec.cxx
+++ b/shell/source/win32/shlxthandler/ooofilt/propspec.cxx
@@ -111,12 +111,16 @@ CFullPropSpec::CFullPropSpec( CFullPropSpec const & src ) :
CFullPropSpec & CFullPropSpec::operator=( CFullPropSpec const & Property )
{
- // Clean up.
- this->CFullPropSpec::~CFullPropSpec();
+ if (this != &Property)
+ {
+ // Clean up.
+ this->CFullPropSpec::~CFullPropSpec();
- ::new (this) CFullPropSpec( Property );
+ ::new (this) CFullPropSpec( Property );
+ }
return *this;
}
+
CFullPropSpec::~CFullPropSpec()
{
if ( _psProperty.ulKind == PRSPEC_LPWSTR &&
@@ -125,6 +129,7 @@ CFullPropSpec::~CFullPropSpec()
CoTaskMemFree( _psProperty.lpwstr );
}
}
+
void CFullPropSpec::SetProperty( PROPID pidProperty )
{
if ( _psProperty.ulKind == PRSPEC_LPWSTR &&