brendan%mozilla.org 1c2f1880d2 - String.prototype.match, .search, and .replace all use match_or_replace as
a common subroutine, but only replace might need to dereference the regexp
  created from a non-regexp-type argument, which is converted to string and
  compiled into a regexp data struct unowned by any rooted object.  This case
  was broken: a dangling GlobData.regexp pointer could be dereferenced in the
  "lambda replace" code under str_replace, in find_replen, *after* the call
  to match_or_replace had destroyed the regexp and returned to str_replace.
  Bug 167658 reported the symptoms.
- Consolidate GlobData members into a flags word, avoiding yet another ad hoc
  paramter to m_or_r (forceFlat).
- Use a local root in str_match to avoid adding and removing a global root.


git-svn-id: svn://10.0.0.236/trunk@130257 18797224-902f-48f8-a5cc-f745e15eee43
2002-09-23 18:33:17 +00:00
..