From 8bf49cdf38c91c91fb5400b00fadbee72dec20de Mon Sep 17 00:00:00 2001 From: "dbaron%dbaron.org" Date: Sun, 3 Apr 2005 16:47:01 +0000 Subject: [PATCH] Reduce code duplication between assignment operator and copy constructor and improve assignment operator. b=288707 r+sr=bzbarsky git-svn-id: svn://10.0.0.236/trunk@171530 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/layout/style/nsCSSValue.cpp | 30 +++-------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/mozilla/layout/style/nsCSSValue.cpp b/mozilla/layout/style/nsCSSValue.cpp index 97d3b729f41..744b83b211f 100644 --- a/mozilla/layout/style/nsCSSValue.cpp +++ b/mozilla/layout/style/nsCSSValue.cpp @@ -159,33 +159,9 @@ nsCSSValue::~nsCSSValue() nsCSSValue& nsCSSValue::operator=(const nsCSSValue& aCopy) { - Reset(); - mUnit = aCopy.mUnit; - if ((eCSSUnit_String <= mUnit) && (mUnit <= eCSSUnit_Attr)) { - if (nsnull != aCopy.mValue.mString) { - mValue.mString = nsCRT::strdup(aCopy.mValue.mString); - } - } - else if ((eCSSUnit_Integer <= mUnit) && (mUnit <= eCSSUnit_Enumerated)) { - mValue.mInt = aCopy.mValue.mInt; - } - else if (eCSSUnit_Color == mUnit){ - mValue.mColor = aCopy.mValue.mColor; - } - else if (eCSSUnit_Array <= mUnit && mUnit <= eCSSUnit_Counters) { - mValue.mArray = aCopy.mValue.mArray; - mValue.mArray->AddRef(); - } - else if (eCSSUnit_URL == mUnit){ - mValue.mURL = aCopy.mValue.mURL; - mValue.mURL->AddRef(); - } - else if (eCSSUnit_Image == mUnit){ - mValue.mImage = aCopy.mValue.mImage; - mValue.mImage->AddRef(); - } - else { - mValue.mFloat = aCopy.mValue.mFloat; + if (this != &aCopy) { + Reset(); + new (this) nsCSSValue(aCopy); } return *this; }