<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Watchpoints should be removed from their owning WatchpointSet before they are fired"
   href="https://bugs.webkit.org/show_bug.cgi?id=146895">146895</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Watchpoints should be removed from their owning WatchpointSet before they are fired
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>528+ (Nightly build)
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>JavaScriptCore
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>fpizlo&#64;apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>This addresses two issues:

- We have had some weirdo bugs where the watchpoint being fired doesn't kill the watchpoint, and therefore doesn't remove it.  That causes an infinite loop inside WatchpointSet.  We don't have such bugs right now, but it's something that you can hit whenever adding new uses of the watchpoint API.  Having the removal happen before means that we just don't have to worry about this, ever.  OTOH, I can't think of any use of Watchpoint that wants to keep the Watchpoint in the set after it is fired.

- It would be great to write adaptive watchpoints that readd themselves to a different set when they are fired.  But to do this, we need to first remove them from the set that they are currently on.  The easiest API for this is to have the removal happen before fire() is called.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>