public inbox for java@gcc.gnu.org
 help / color / mirror / Atom feed
From: Stuart Ballard <sballard@netreach.net>
To: Jochen Hoenicke <Jochen.Hoenicke@Informatik.Uni-Oldenburg.DE>
Cc: Per Bothner <per@bothner.com>,
	java-discuss@sourceware.cygnus.com, classpath@gnu.org
Subject: Re: Proposal for CNI/JNI problems
Date: Sat, 01 Apr 2000 00:00:00 -0000	[thread overview]
Message-ID: <387E1F9C.615A7FE0@netreach.net> (raw)
In-Reply-To: <14460.37463.273837.406646@celan.Informatik.Uni-Oldenburg.DE>

Jochen Hoenicke wrote:
> 
> Another point is how to put pointers to native structures into a
> classfile.  Sun didn't solve it well.  If I understand the code in
> japhar's java/util/zip correctly sun used an int field to store the
> pointer and later changed it to long to support 64bit architectures.
> libgcj declares natives fields as "gnu.gcj.RawData", but this is not
> portable to other jvms, where the garbage collector doesn't know that
> this class is special.  My solution was to put the structure into a
> java byte array, which imposes a little overhead, but should be
> portable (and you get it freed automatically).

Classpath has been using a library called NSA, which Paul wrote IIRC,
that can be implemented either with native VM support if available
(which Japhar has) enabling the native data to actually be stored as
part of the object, or using a hash table based on the
System.identityHashCode of the object if not. I haven't heard about any
problems with this approach. Admittedly it's a little overhead if your
VM doesn't provide the support, but it's only a little and it doesn't
take much to add the support to a VM. Plus it's 100% portable.

Stuart.

  reply	other threads:[~2000-04-01  0:00 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-04-01  0:00 Paul Fisher
2000-04-01  0:00 ` Per Bothner
2000-04-01  0:00   ` Paul Fisher
2000-04-01  0:00     ` Aaron M. Renn
2000-04-01  0:00       ` Stuart Ballard
2000-04-01  0:00         ` Chris Blizzard
2000-04-01  0:00           ` Chris Blizzard
2000-04-01  0:00     ` Per Bothner
2000-04-01  0:00   ` Bernd Kreimeier
2000-04-01  0:00     ` Per Bothner
2000-04-01  0:00       ` Bernd Kreimeier
2000-04-01  0:00         ` Per Bothner
2000-04-01  0:00           ` Bernd Kreimeier
2000-04-01  0:00             ` Per Bothner
2000-04-01  0:00               ` Bernd Kreimeier
2000-04-01  0:00                 ` Per Bothner
2000-04-01  0:00                   ` Bernd Kreimeier
2000-04-01  0:00                   ` Alexandre Oliva
2000-04-01  0:00   ` Jochen Hoenicke
2000-04-01  0:00     ` Stuart Ballard [this message]
2000-04-01  0:00     ` Jon Olson
2000-04-01  0:00     ` Per Bothner
  -- strict thread matches above, loose matches on Subject: below --
2000-04-01  0:00 David Pettersson
2000-04-01  0:00 ` Per Bothner
2000-04-01  0:00 Boehm, Hans
2000-04-01  0:00 Lam.Mark
2000-04-01  0:00 ` Aaron M. Renn
2000-04-01  0:00   ` Brian Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=387E1F9C.615A7FE0@netreach.net \
    --to=sballard@netreach.net \
    --cc=Jochen.Hoenicke@Informatik.Uni-Oldenburg.DE \
    --cc=classpath@gnu.org \
    --cc=java-discuss@sourceware.cygnus.com \
    --cc=per@bothner.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).