diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | translate.cxx | 6 |
2 files changed, 9 insertions, 3 deletions
@@ -1,3 +1,9 @@ +2006-01-04 Frank Ch. Eigler <fche@elastic.org> + + PR 2057. + * translate.cxx (c_unparser_assignment::visit_arrayindex): Don't take + write lock around pmap accumulation. + 2006-01-04 Will Cohen <wcohen@redhat.com> * testsuite/buildok/printf.stp: Improve test coverage. diff --git a/translate.cxx b/translate.cxx index 78788de9..5bad6bdf 100644 --- a/translate.cxx +++ b/translate.cxx @@ -2964,9 +2964,9 @@ c_unparser_assignment::visit_arrayindex (arrayindex *e) // a statistic-valued map, there's a special form we follow: // // ({ tmp0=(idx0); ... tmpN=(idxN); rvar=(rhs); lvar; res; - // lock (array); + // *no need to* lock (array); // _stp_map_add_stat (array, idx0...N, rvar); - // unlock (array); + // *no need to* unlock (array); // rvar; }) // // To simplify variable-allocation rules, we assign rvar to lvar and @@ -2982,7 +2982,7 @@ c_unparser_assignment::visit_arrayindex (arrayindex *e) mapvar mvar = parent->getmap (array->referent, e->tok); o->newline() << "c->last_stmt = " << lex_cast_qstring(*e->tok) << ";"; - varlock_w guard (*parent, mvar); + // NB: *no need to* varlock_w guard (*parent, mvar); o->newline() << mvar.add (idx, rvar) << ";"; // dummy assignments o->newline() << lvar << " = " << rvar << ";"; |