Skip to content

Commit

Permalink
Local ReferenceQueue version is fully customized. FinalizeHistogram c…
Browse files Browse the repository at this point in the history
…lass is called by Hotspot, but otherwise unused, so we can exclude it.
  • Loading branch information
wasabii committed Jun 12, 2024
1 parent 52ff014 commit a0dd8cc
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 40 deletions.
32 changes: 22 additions & 10 deletions src/IKVM.Java/IKVM.Java.runtime.props
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
<TransformValues Include="OpenJdkSpecificationVersion" Value="$(OpenJdkSpecificationVersion)" />
<TransformValues Include="OpenJdkSpecificationVendor" Value="$(OpenJdkSpecificationVendor)" />
</ItemGroup>

<ItemDefinitionGroup>
<OpenJdkSource>
<PackagePath></PackagePath>
Expand All @@ -61,6 +61,20 @@

<ItemGroup>
<OpenJdkSource Include="$(OpenJdkDir)\build\linux-x86_64-normal-server-release\corba\gensrc\**\*.java" PackagePath="" />
<OpenJdkSource Include="$(OpenJdkDir)\corba\src\share\classes\**\*.java" PackagePath="" />
<OpenJdkSource Remove="$(OpenJdkDir)\corba\src\share\classes\sun\misc\**\*.java" />
</ItemGroup>

<ItemGroup>
<OpenJdkSource Include="$(OpenJdkDir)\jaxp\src\**\*.java" PackagePath="" />
</ItemGroup>

<ItemGroup>
<OpenJdkSource Include="$(OpenJdkDir)\jaxws\src\share\jaf_classes\**\*.java" PackagePath="" />
<OpenJdkSource Include="$(OpenJdkDir)\jaxws\src\share\jaxws_classes\**\*.java" PackagePath="" />
</ItemGroup>

<ItemGroup>
<OpenJdkSource Include="$(OpenJdkDir)\build\linux-x86_64-normal-server-release\jdk\gensrc\sun\util\CoreResourceBundleControl.java" PackagePath="sun\util" />
<OpenJdkSource Include="$(OpenJdkDir)\build\linux-x86_64-normal-server-release\jdk\gensrc\sun\util\locale\provider\LocaleDataMetaInfo.java" PackagePath="sun\util\locale\provider" />
<OpenJdkSource Include="$(OpenJdkDir)\build\linux-x86_64-normal-server-release\jdk\impsrc\com\sun\corba\se\impl\logging\ActivationSystemException.java" PackagePath="com\sun\corba\se\impl\logging" />
Expand All @@ -71,12 +85,6 @@
<OpenJdkSource Include="$(OpenJdkDir)\build\linux-x86_64-normal-server-release\jdk\impsrc\com\sun\corba\se\impl\logging\ORBUtilSystemException.java" PackagePath="com\sun\corba\se\impl\logging" />
<OpenJdkSource Include="$(OpenJdkDir)\build\linux-x86_64-normal-server-release\jdk\impsrc\com\sun\corba\se\impl\logging\POASystemException.java" PackagePath="com\sun\corba\se\impl\logging" />
<OpenJdkSource Include="$(OpenJdkDir)\build\linux-x86_64-normal-server-release\jdk\impsrc\com\sun\corba\se\impl\logging\UtilSystemException.java" PackagePath="com\sun\corba\se\impl\logging" />
<OpenJdkSource Include="$(OpenJdkDir)\build\linux-x86_64-normal-server-release\langtools\gensrc\com\sun\tools\**\*.java" PackagePath="com\sun\tools" />

<OpenJdkSource Include="$(OpenJdkDir)\corba\src\share\classes\**\*.java" PackagePath="" />
<OpenJdkSource Include="$(OpenJdkDir)\jaxp\src\**\*.java" PackagePath="" />
<OpenJdkSource Include="$(OpenJdkDir)\jaxws\src\share\jaf_classes\**\*.java" PackagePath="" />
<OpenJdkSource Include="$(OpenJdkDir)\jaxws\src\share\jaxws_classes\**\*.java" PackagePath="" />
<OpenJdkSource Include="$(OpenJdkDir)\jdk\src\share\classes\com\sun\awt\**\*.java" PackagePath="com\sun\awt" />
<OpenJdkSource Include="$(OpenJdkDir)\jdk\src\share\classes\com\sun\beans\**\*.java" PackagePath="com\sun\beans" />
<OpenJdkSource Include="$(OpenJdkDir)\jdk\src\share\classes\com\sun\crypto\**\*.java" PackagePath="com\sun\crypto" />
Expand Down Expand Up @@ -133,6 +141,7 @@
<OpenJdkSource Remove="$(OpenJdkDir)\jdk\src\share\classes\java\lang\ref\Reference.java" />
<OpenJdkSource Remove="$(OpenJdkDir)\jdk\src\share\classes\java\lang\ref\ReferenceQueue.java" />
<OpenJdkSource Remove="$(OpenJdkDir)\jdk\src\share\classes\java\lang\ref\SoftReference.java" />
<OpenJdkSource Remove="$(OpenJdkDir)\jdk\src\share\classes\java\lang\ref\FinalizerHistogram.java" />
<OpenJdkSource Include="$(OpenJdkDir)\jdk\src\share\classes\java\lang\reflect\**\*.java" PackagePath="java\lang\reflect" />
<OpenJdkSource Remove="$(OpenJdkDir)\jdk\src\share\classes\java\lang\reflect\Constructor.java" />
<OpenJdkSource Remove="$(OpenJdkDir)\jdk\src\share\classes\java\lang\reflect\Executable.java" />
Expand Down Expand Up @@ -203,8 +212,6 @@
<OpenJdkSource Remove="$(OpenJdkDir)\jdk\src\share\classes\sun\tools\jstat\**\*.java" />
<OpenJdkSource Remove="$(OpenJdkDir)\jdk\src\share\classes\sun\tools\jstatd\**\*.java" />
<OpenJdkSource Include="$(OpenJdkDir)\jdk\src\share\classes\sun\util\**\*.java" PackagePath="sun\util" />
<!--<OpenJdkSource Include="$(OpenJdkDir)\jdk\src\share\demo\nio\zipfs\src\com\sun\nio\zipfs\**\*.java" PackagePath="com\sun\nio\zipfs" />-->
<OpenJdkSource Include="$(OpenJdkDir)\langtools\src\share\classes\**\*.java" PackagePath="" />
</ItemGroup>

<ItemGroup Condition=" '$(IkvmJavaRuntimeIdentifier)' == 'win' Or '$(IkvmJavaRuntimeIdentifier)' == 'ref' ">
Expand Down Expand Up @@ -337,6 +344,11 @@
<OpenJdkSource Remove="$(OpenJdkDir)\jdk\src\solaris\classes\sun\nio\fs\PollingWatchService.java" />
</ItemGroup>

<ItemGroup>
<OpenJdkSource Include="$(OpenJdkDir)\build\linux-x86_64-normal-server-release\langtools\gensrc\com\sun\tools\**\*.java" PackagePath="com\sun\tools" />
<OpenJdkSource Include="$(OpenJdkDir)\langtools\src\share\classes\**\*.java" PackagePath="" />
</ItemGroup>

<ItemGroup>
<OpenJdkClass Include="$(OpenJdkDir)\build\linux-x86_64-normal-server-release\nashorn\classes\**\*.class" />
</ItemGroup>
Expand Down Expand Up @@ -373,7 +385,7 @@
<!-- Copy icu and _dict files used by the text break iterator -->
<OpenJdkResource Include="$(OpenJdkDir)jdk\src\share\classes\**\*.icu" ResourcePath="%(RecursiveDir)%(Filename)%(Extension)" />
<OpenJdkResource Include="$(OpenJdkDir)jdk\src\share\classes\**\*_dict" ResourcePath="%(RecursiveDir)%(Filename)%(Extension)" />

<!-- Copy config files for com.sun.org.apache.xml.internal.security -->
<OpenJdkResource Include="$(OpenJdkDir)jdk\src\share\classes\com\sun\org\apache\xml\internal\security\resource\config.dtd" ResourcePath="com\sun\org\apache\xml\internal\security\resource\config.dtd" />
<OpenJdkResource Include="$(OpenJdkDir)jdk\src\share\classes\com\sun\org\apache\xml\internal\security\resource\config.xml" ResourcePath="com\sun\org\apache\xml\internal\security\resource\config.xml" />
Expand Down
31 changes: 1 addition & 30 deletions src/IKVM.Java/local/java/lang/ref/ReferenceQueue.java
Original file line number Diff line number Diff line change
Expand Up @@ -205,33 +205,4 @@ private void scanActiveList()
curr = curr.next;
}
}

/**
* Iterate queue and invoke given action with each Reference.
* Suitable for diagnostic purposes.
* WARNING: any use of this method should make sure to not
* retain the referents of iterated references (in case of
* FinalReference(s)) so that their life is not prolonged more
* than necessary.
*/
void forEach(Consumer<? super Reference<? extends T>> action) {
for (Reference<? extends T> r = head; r != null;) {
action.accept(r);
@SuppressWarnings("unchecked")
Reference<? extends T> rn = r.next;
if (rn == r) {
if (r.queue == ENQUEUED) {
// still enqueued -> we reached end of chain
r = null;
} else {
// already dequeued: r.queue == NULL; ->
// restart from head when overtaken by queue poller(s)
r = head;
}
} else {
// next in chain
r = rn;
}
}
}
}
}

0 comments on commit a0dd8cc

Please sign in to comment.