Backported to icecat-31.8 from the upstream esr38 branch. From 95231c1bca9c9495393b795513bea71a21a6ec2f Mon Sep 17 00:00:00 2001 From: Birunthan Mohanathas Date: Tue, 21 Jul 2015 09:42:58 -0700 Subject: [PATCH] Bug 1182723 - Properly handle self-assignment in nsTArray::operator=. r=mccr8, a=abillings --- icecat-31.8.0/xpcom/glue/nsTArray.h.orig 2015-08-12 16:03:56.353746969 -0400 +++ icecat-31.8.0/xpcom/glue/nsTArray.h 2015-08-12 16:06:52.144553848 -0400 @@ -811,7 +811,9 @@ // array. It is optimized to reuse existing storage if possible. // @param other The array object to copy. self_type& operator=(const self_type& other) { - ReplaceElementsAt(0, Length(), other.Elements(), other.Length()); + if (this != &other) { + ReplaceElementsAt(0, Length(), other.Elements(), other.Length()); + } return *this; }