From: Torvald Riegel Date: Fri, 13 Jan 2012 23:45:42 +0000 (+0000) Subject: libitm: Truncate undo log after rolling back. X-Git-Tag: releases/gcc-4.7.0~998 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=aab74ee9d400976da7107d9554e3fa7b665160d4;p=thirdparty%2Fgcc.git libitm: Truncate undo log after rolling back. libitm/ * local.cc (GTM::gtm_undolog::rollback): Truncate undo log after rolling back. * containers.h (GTM::vector::set_size): New. From-SVN: r183173 --- diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 8efaef5f3297..ad07098d3268 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,9 @@ +2012-01-14 Torvald Riegel + + * local.cc (GTM::gtm_undolog::rollback): Truncate undo log after + rolling back. + * containers.h (GTM::vector::set_size): New. + 2012-01-14 Torvald Riegel PR libitm/51855 diff --git a/libitm/containers.h b/libitm/containers.h index 394b6f2508ec..36905659da29 100644 --- a/libitm/containers.h +++ b/libitm/containers.h @@ -92,6 +92,7 @@ class vector size_t size() const { return m_size; } size_t capacity() const { return this->capacity; } + void set_size (size_t size) { m_size = size; } void clear() { m_size = 0; } iterator push() { diff --git a/libitm/local.cc b/libitm/local.cc index 5645a12bab89..d0d96cea625a 100644 --- a/libitm/local.cc +++ b/libitm/local.cc @@ -61,6 +61,7 @@ gtm_undolog::rollback (gtm_thread* tx, size_t until_size) if (likely(ptr > top || (uint8_t*)ptr + len <= bot)) __builtin_memcpy (ptr, &undolog[i], len); } + undolog.set_size(until_size); } }