For reference, I threw some extra pool management into glib2 to stop messages 
exactly like that here:

https://github.com/macports/macports-ports/blob/master/devel/glib2/files/patch-glib2-findfolders-before-Lion.diff


perhaps adding some into openjdk would help. A bit of trial and error might be 
required.

K


> On Jul 16, 2024, at 7:44 AM, Ken Cunningham <ken.cunningham.web...@gmail.com> 
> wrote:
> 
> The usual equivalent older construct is this:
> 
> 
> NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
> {
> 
> }
> [pool drain];
> 
> 
> which (AFAIK) does exactly the same thing as:
> 
> @autoreleasepool
> {
> 
> }
> 
> but just a little less beautifully.
> 
> Now the commit you referenced has this older construct still in place. But I 
> didn't look at the current source code that you are compiling to see what it 
> has.
> 
> Ken
> 
> NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
> { } [pool drain];
>> On Jul 16, 2024, at 7:17 AM, Sergey Fedorov <vital....@gmail.com> wrote:
>> 
>> On Tue, Jul 16, 2024 at 6:19 PM Saagar Jha <saa...@saagarjha.com> wrote:
>> I’m guessing that since the block runs elsewhere there isn’t an 
>> autoreleasepool for it anymore. You can probably fix this by wrapping the 
>> call to JavaMain in @autoreleasepool {}?
>> Saagar Jha
>> 
>> This syntax is not supported by GCC, we need to use a standard ObjC somehow.
>> 
>>> 
>>> On Jul 10, 2024, at 02:47, Riccardo Mottola via macports-dev 
>>> <macports-dev@lists.macports.org> wrote:
>>> 
>>> Hi,
>>> 
>>> Sergio Had wrote:
>>>> I have finally built the thing and it works, from looks of things, but I 
>>>> get a message on startup:
>>>> 36-25% 
>>>> /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_java_openjdk8/openjdk8/work/jdk8u-jdk8u372-ga/build/openjdk8/images/j2sdk-image/bin/java
>>>>  -version
>>>> 2024-07-09 18:34:10.587 java[13785:1903] *** __NSAutoreleaseNoPool(): 
>>>> Object 0x5d12e50 of class NSCFDictionary autoreleased with no pool in 
>>>> place - just leaking
>>>> 2024-07-09 18:34:10.590 java[13785:1903] *** __NSAutoreleaseNoPool(): 
>>>> Object 0x5d13310 of class NSCFData autoreleased with no pool in place - 
>>>> just leaking
>>>> openjdk version "1.8.0_372"
>>>> OpenJDK Runtime Environment (build 1.8.0_372-root_2024_07_09_15_56-b00)
>>>> OpenJDK Zero VM (build 25.372-b00, interpreted mode)
>>>> 
>>>> This seems to be related to the code, which upstream has switched to block 
>>>> syntax (it does not build with GCC), so I had to use its earlier version.
>>>> From commit message it seems upstream also had this startup issue:
>>>> https://github.com/openjdk/jdk8u/commit/c29d997ca180ba5d812df7745c668cfc906be20b
>>> 
>>> the message tells you that you are using NS* objects without an Autorelease 
>>> Pool. It will cause issues, but "should work", so your app should run.
>>> I notice what they appear to be CoreFoundation bridge object. You should 
>>> try to track where they come from, maybe put a breakpoint and stacktrace.
>>> 
>>> The snipped seen in the commit looks trivial, no nsblocks needed and has an 
>>> fresh ARP allocated, so I think the issue is elsewhere.
>>> 
>>> Riccardo
>> 
> 

Reply via email to