jaxp/ASSEMBLY_EXCEPTION
author tonyp
Fri, 10 Jun 2011 13:16:40 -0400
changeset 9989 305a76435cf1
parent 6 7f561c08de6b
child 41431 62f1dfefd681
permissions -rw-r--r--
7045330: G1: Simplify/fix the HeapRegionSeq class 7042285: G1: native memory leak during humongous object allocation 6804436: G1: heap region indices should be size_t Summary: A series of fixes and improvements to the HeapRegionSeq class: a) replace the _regions growable array with a standard C array, b) avoid de-allocating / re-allocating HeapRegion instances when the heap shrinks / grows (fix for 7042285), c) introduce fast method to map address to HeapRegion via a "biased" array pointer, d) embed the _hrs object in G1CollectedHeap, instead of pointing to it via an indirection, e) assume that all the regions added to the HeapRegionSeq instance are contiguous, f) replace int's with size_t's for indexes (and expand that to HeapRegion as part of 6804436), g) remove unnecessary / unused methods, h) rename a couple of fields (_alloc_search_start and _seq_bottom), i) fix iterate_from() not to always start from index 0 irrespective of the region passed to it, j) add a verification method to check the HeapRegionSeq assumptions, k) always call the wrappers for _hrs.iterate(), _hrs_length(), and _hrs.at() from G1CollectedHeap, not those methods directly, and l) unify the code that expands the sequence (by either re-using or creating a new HeapRegion) and make it robust wrt to a HeapRegion allocation failing. Reviewed-by: stefank, johnc, brutisso
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6
7f561c08de6b Initial load
duke
parents:
diff changeset
     1
7f561c08de6b Initial load
duke
parents:
diff changeset
     2
OPENJDK ASSEMBLY EXCEPTION
7f561c08de6b Initial load
duke
parents:
diff changeset
     3
7f561c08de6b Initial load
duke
parents:
diff changeset
     4
The OpenJDK source code made available by Sun at openjdk.java.net and
7f561c08de6b Initial load
duke
parents:
diff changeset
     5
openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the
7f561c08de6b Initial load
duke
parents:
diff changeset
     6
GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2
7f561c08de6b Initial load
duke
parents:
diff changeset
     7
only ("GPL2"), with the following clarification and special exception.
7f561c08de6b Initial load
duke
parents:
diff changeset
     8
7f561c08de6b Initial load
duke
parents:
diff changeset
     9
    Linking this OpenJDK Code statically or dynamically with other code
7f561c08de6b Initial load
duke
parents:
diff changeset
    10
    is making a combined work based on this library.  Thus, the terms
7f561c08de6b Initial load
duke
parents:
diff changeset
    11
    and conditions of GPL2 cover the whole combination.
7f561c08de6b Initial load
duke
parents:
diff changeset
    12
7f561c08de6b Initial load
duke
parents:
diff changeset
    13
    As a special exception, Sun gives you permission to link this
7f561c08de6b Initial load
duke
parents:
diff changeset
    14
    OpenJDK Code with certain code licensed by Sun as indicated at
7f561c08de6b Initial load
duke
parents:
diff changeset
    15
    http://openjdk.java.net/legal/exception-modules-2007-05-08.html
7f561c08de6b Initial load
duke
parents:
diff changeset
    16
    ("Designated Exception Modules") to produce an executable,
7f561c08de6b Initial load
duke
parents:
diff changeset
    17
    regardless of the license terms of the Designated Exception Modules,
7f561c08de6b Initial load
duke
parents:
diff changeset
    18
    and to copy and distribute the resulting executable under GPL2,
7f561c08de6b Initial load
duke
parents:
diff changeset
    19
    provided that the Designated Exception Modules continue to be
7f561c08de6b Initial load
duke
parents:
diff changeset
    20
    governed by the licenses under which they were offered by Sun.
7f561c08de6b Initial load
duke
parents:
diff changeset
    21
7f561c08de6b Initial load
duke
parents:
diff changeset
    22
As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to
7f561c08de6b Initial load
duke
parents:
diff changeset
    23
build an executable that includes those portions of necessary code that Sun
7f561c08de6b Initial load
duke
parents:
diff changeset
    24
could not provide under GPL2 (or that Sun has provided under GPL2 with the
7f561c08de6b Initial load
duke
parents:
diff changeset
    25
Classpath exception).  If you modify or add to the OpenJDK code, that new
7f561c08de6b Initial load
duke
parents:
diff changeset
    26
GPL2 code may still be combined with Designated Exception Modules if the
7f561c08de6b Initial load
duke
parents:
diff changeset
    27
new code is made subject to this exception by its copyright holder.