expressions.h
107 KB
-
compiler: omit a couple of write barriers · 8a90f559
Omit a write barrier for s = s[0:] for a slice s. In this case the pointer is not changing and no write barrier is required. Omit a write barrier for s = append(s, v) in the case where len(s) < cap(s) (and similarly when appending more values). When the slice has enough capacity the pointer is not changing and no write barrier is required. These changes are required to avoid write barriers in the method randomOrder.reset in the runtime package. That method is called from procresize, at a point where we do not want to allocate memory. Otherwise that method can use a write barrier, allocate memory, and break TestReadMemStats. Reviewed-on: https://go-review.googlesource.com/134219 From-SVN: r264259
Ian Lance Taylor committed