<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix"><br>
      Stefan,<br>
      <br>
      Is there a common place for this code?  It's 4 copies of the
      similar code, which takes me a while to find when I set out
      looking for it.  In the future, I think StringTable::unlink()
      could be moved after CLDG::purge() which I thought should be
      around here too (but it's not).   The only reason
      StringTable::unlink() used to be here was because it used to have
      Oops in it.   Can you unite this duplicated code?<br>
      <br>
      Thanks,<br>
      Coleen<br>
      <br>
      On 4/24/2013 4:18 PM, Stefan Karlsson wrote:<br>
    </div>
    <blockquote cite="mid:51783E0D.5080408@oracle.com" type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="http://cr.openjdk.java.net/%7Estefank/8013160/webrev.00/">http://cr.openjdk.java.net/~stefank/8013160/webrev.00/</a><br>
      <br>
      There's some remnants from the PermGen that's confusing in the
      class unloading code. This patch removes the unnecessary code,
      cleans up some comments and unifies the code structure over
      different GCs.<br>
      <br>
      From the Bug report:<br>
      ---<br>
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      The PermGen Removal changed CompiledICHolders from being Java
      objects to C++ objects. <br>
      <br>
      CodeCache::do_unloading(...) used to take a keep_alive closure
      that was applied to CompiledICHolders deep down in
      nmethod::do_unloading. Since CompileICHolders don't move anymore,
      and we have other ways to keep them alive, we don't use the
      keep_alive closures in these functions anymore. <br>
      <br>
      Because of this, CodeCache::do_unloading will not populate the
      marking stacks, and we can remove the call to drain the stacks
      after the calls to CodeCache::do_unloading. <br>
      <br>
      This also has the neat effect that we now can verify that the
      marking has really completed before we start unloading classes,
      which makes the code easier to maintain/understand.<br>
      ---<br>
      <br>
      thanks,<br>
      StefanK<br>
    </blockquote>
    <br>
  </body>
</html>