changeset 659:fe75d98598d6

[project @ 1994-08-29 21:23:06 by jwe]
author jwe
date Mon, 29 Aug 1994 21:23:06 +0000
parents ce51ae1bc05e
children 1787dc40c811
files liboctave/Array.cc
diffstat 1 files changed, 30 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/Array.cc	Mon Aug 29 04:46:51 1994 +0000
+++ b/liboctave/Array.cc	Mon Aug 29 21:23:06 1994 +0000
@@ -149,11 +149,15 @@
 Array<T>&
 Array<T>::operator = (const Array<T>& a)
 {
-  if (--rep->count <= 0)
-    delete rep;
+  if (this != &a)
+    {
+      if (--rep->count <= 0)
+	delete rep;
 
-  rep = a.rep;
-  rep->count++;
+      rep = a.rep;
+      rep->count++;
+    }
+
   return *this;
 }
 
@@ -378,9 +382,13 @@
 Array2<T>&
 Array2<T>::operator = (const Array2<T>& a)
 {
-  Array<T>::operator = (a);
-  d1 = a.d1;
-  d2 = a.d2;
+  if (this != &a)
+    {
+      Array<T>::operator = (a);
+      d1 = a.d1;
+      d2 = a.d2;
+    }
+
   return *this;
 }
 
@@ -625,10 +633,14 @@
 Array3<T>&
 Array3<T>::operator = (const Array3<T>& a)
 {
-  Array<T>::operator = (a);
-  d1 = a.d1;
-  d2 = a.d2;
-  d3 = a.d3;
+  if (this != &a)
+    {
+      Array<T>::operator = (a);
+      d1 = a.d1;
+      d2 = a.d2;
+      d3 = a.d3;
+    }
+
   return *this;
 }
 
@@ -789,9 +801,13 @@
 DiagArray<T>&
 DiagArray<T>::operator = (const DiagArray<T>& a)
 {
-  Array<T>::operator = (a);
-  nr = a.nr;
-  nc = a.nc;
+  if (this != &a)
+    {
+      Array<T>::operator = (a);
+      nr = a.nr;
+      nc = a.nc;
+    }
+
   return *this;
 }