13 messages in net.java.dev.jna.usersRe: [jna-users] Some questions about ...
FromSent OnAttachments
Albert StrasheimJan 6, 2009 11:33 am 
Timothy WallJan 6, 2009 11:58 am 
Albert StrasheimJan 6, 2009 12:08 pm 
Timothy WallJan 6, 2009 12:12 pm 
Timothy WallJan 6, 2009 12:14 pm 
Albert StrasheimJan 6, 2009 12:21 pm 
Timothy WallJan 6, 2009 12:29 pm 
Albert StrasheimJan 6, 2009 12:37 pm 
Daniel KaufmannJan 6, 2009 4:26 pm 
Albert StrasheimJan 6, 2009 6:38 pm.diff
Albert StrasheimJan 8, 2009 7:30 pm 
Paul LoyJan 9, 2009 1:40 am 
Timothy WallJan 9, 2009 4:45 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [jna-users] Some questions about com.sun.jna.MemoryActions...
From:Timothy Wall (twal@dev.java.net)
Date:Jan 6, 2009 12:12:42 pm
List:net.java.dev.jna.users

On Jan 6, 2009, at 3:08 PM, Albert Strasheim wrote:

I also think it could be useful if one could explicitly call free() on a Memory instance instead of relying on the finalizer. This becomes useful when one is dealing with many large buffers that use up most of the available memory.

There used to be an explicit "free" in the original JNA CVS codebase, but I removed it because it wasn't referenced internally and made necessary checks for validity everywhere. At the time I thought it was a lot cleaner to not have to worry about Memory being invalid until it was GCd. In this case, making an ExplicitlyFreeableMemory class if you need it keeps the core implementation simpler.

It seems I can't make this class in my own package because Pointer's constructors are package-private. I am missing something, or is this something that could be changed?

Derive from com.sun.jna.Memory. It has a public ctor, so your derived class can explicitly call "finalize", which is protected.