aboutsummaryrefslogtreecommitdiff
path: root/libjava/jni/classpath
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2005-07-16 01:27:14 +0000
committerTom Tromey <tromey@gcc.gnu.org>2005-07-16 01:27:14 +0000
commitb0fa81eea9a270f23d6ad67ca7a6d25c18d20da1 (patch)
tree8762d1f992e2f725a6bde1ff966ed6f1e5f4f823 /libjava/jni/classpath
parentea54b29342c8506acb4f858c68340c44b72e3532 (diff)
downloadgcc-b0fa81eea9a270f23d6ad67ca7a6d25c18d20da1.zip
gcc-b0fa81eea9a270f23d6ad67ca7a6d25c18d20da1.tar.gz
gcc-b0fa81eea9a270f23d6ad67ca7a6d25c18d20da1.tar.bz2
Major merge with Classpath.
Removed many duplicate files. * HACKING: Updated.x * classpath: Imported new directory. * standard.omit: New file. * Makefile.in, aclocal.m4, configure: Rebuilt. * sources.am: New file. * configure.ac: Run Classpath configure script. Moved code around to support. Disable xlib AWT peers (temporarily). * Makefile.am (SUBDIRS): Added 'classpath' (JAVAC): Removed. (AM_CPPFLAGS): Added more -I options. (BOOTCLASSPATH): Simplified. Completely redid how sources are built. Include sources.am. * include/Makefile.am (tool_include__HEADERS): Removed jni.h. * include/jni.h: Removed (in Classpath). * scripts/classes.pl: Updated to look at built classes. * scripts/makemake.tcl: New file. * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Added -I options. (gcj_jni_invocation_compile_c_to_binary): Likewise. From-SVN: r102082
Diffstat (limited to 'libjava/jni/classpath')
-rw-r--r--libjava/jni/classpath/classpath_jawt.h64
-rw-r--r--libjava/jni/classpath/native_state.c247
-rw-r--r--libjava/jni/classpath/native_state.h71
3 files changed, 0 insertions, 382 deletions
diff --git a/libjava/jni/classpath/classpath_jawt.h b/libjava/jni/classpath/classpath_jawt.h
deleted file mode 100644
index f3326e1..0000000
--- a/libjava/jni/classpath/classpath_jawt.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* classpath_awt.h -- libjawt's interface to the peer library
- Copyright (C) 2005 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA.
-
- Linking this library statically or dynamically with other modules is
- making a combined work based on this library. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
-
- As a special exception, the copyright holders of this library give you
- permission to link this library with independent modules to produce an
- executable, regardless of the license terms of these independent
- modules, and to copy and distribute the resulting executable under
- terms of your choice, provided that you also meet, for each linked
- independent module, the terms and conditions of the license of that
- module. An independent module is a module which is not derived from
- or based on this library. If you modify this library, you may extend
- this exception to your version of the library, but you are not
- obligated to do so. If you do not wish to do so, delete this
- exception statement from your version. */
-
-/*
- * libjawt.so is linked directly to the peer library with -l. This
- * header declares all the functions that libjawt.so needs -- X-based
- * peer libraries wanting to support libjawt.so must implement these
- * functions.
- */
-
-#ifndef __classpath_jawt_h__
-#define __classpath_jawt_h__
-
-#include <jni.h>
-#include <X11/Xlib.h>
-
-#define CLASSPATH_JAWT_VERSION 0x10004
-
-jint classpath_jawt_get_awt_version ();
-Display* classpath_jawt_get_default_display (JNIEnv* env, jobject canvas);
-Drawable classpath_jawt_get_drawable (JNIEnv* env, jobject canvas);
-VisualID classpath_jawt_get_visualID (JNIEnv* env, jobject canvas);
-jint classpath_jawt_object_lock (jobject lock);
-void classpath_jawt_object_unlock (jobject lock);
-jint classpath_jawt_lock ();
-void classpath_jawt_unlock ();
-jobject classpath_jawt_create_lock ();
-void classpath_jawt_destroy_lock (jobject lock);
-
-#endif /* __classpath_jawt_h__ */
diff --git a/libjava/jni/classpath/native_state.c b/libjava/jni/classpath/native_state.c
deleted file mode 100644
index 5923bb8..0000000
--- a/libjava/jni/classpath/native_state.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/* Magical NSA API -- Associate a C ptr with an instance of an object
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-#include <stdlib.h>
-#include <jni.h>
-#include "native_state.h"
-
-#define DEFAULT_TABLE_SIZE 97
-
-struct state_table *
-init_state_table_with_size (JNIEnv *env, jclass clazz, jint size)
-{
- struct state_table *table;
- jfieldID hash;
- jclass clazz_g;
-
- hash = (*env)->GetFieldID (env, clazz, "native_state", "I");
- if (hash == NULL)
- return NULL;
-
- clazz_g = (*env)->NewGlobalRef (env, clazz);
- if (clazz_g == NULL)
- return NULL;
-
- table = (struct state_table *) malloc (sizeof (struct state_table));
- table->size = size;
- table->head = (struct state_node **) calloc (sizeof (struct state_node *),
- table->size);
- table->hash = hash;
- table->clazz = clazz_g;
-
- return table;
-}
-
-struct state_table *
-init_state_table (JNIEnv *env, jclass clazz)
-{
- return init_state_table_with_size (env, clazz, DEFAULT_TABLE_SIZE);
-}
-
-static void *
-remove_node (struct state_node **head, jint obj_id)
-{
- struct state_node *back_ptr = NULL;
- struct state_node *node = *head;
-
- while (node != NULL)
- {
- if (node->key == obj_id)
- {
- void *return_value;
- if (back_ptr == NULL)
- *head = node->next;
- else
- back_ptr->next = node->next;
- return_value = node->c_state;
- free (node);
- return return_value;
- }
- back_ptr = node;
- node = node->next;
- }
-
- return NULL;
-}
-
-static void *
-get_node (struct state_node **head, jint obj_id)
-{
- struct state_node *back_ptr = NULL;
- struct state_node *node = *head;
-
- while (node != NULL)
- {
- if (node->key == obj_id)
- {
- /* Move the node we found to the front of the list. */
- if (back_ptr != NULL)
- {
- back_ptr->next = node->next;
- node->next = *head;
- *head = node;
- }
-
- /* Return the match. */
- return node->c_state;
- }
-
- back_ptr = node;
- node = node->next;
- }
-
- return NULL;
-}
-
-static void
-add_node (struct state_node **head, jint obj_id, void *state)
-{
- struct state_node *node = *head;
- struct state_node *back_ptr = NULL;
-
- struct state_node *new_node;
-
- if (node != NULL)
- {
- while (node->next != NULL && obj_id != node->key)
- {
- back_ptr = node;
- node = node->next;
- }
-
- if (node->key == obj_id)
- {
- /* If we're updating a node, move it to the front of the
- list. */
- if (back_ptr != NULL)
- {
- back_ptr->next = node->next;
- node->next = *head;
- }
- node->c_state = state;
- return;
- }
- }
-
- new_node = (struct state_node *) malloc (sizeof (struct state_node));
- new_node->key = obj_id;
- new_node->c_state = state;
- new_node->next = *head;
- *head = new_node;
-}
-
-void
-set_state_oid (JNIEnv *env, jobject lock, struct state_table *table,
- jint obj_id, void *state)
-{
- jint hash;
-
- hash = obj_id % table->size;
-
- (*env)->MonitorEnter (env, lock);
- add_node (&table->head[hash], obj_id, state);
- (*env)->MonitorExit (env, lock);
-}
-
-void *
-get_state_oid (JNIEnv *env, jobject lock, struct state_table *table,
- jint obj_id)
-{
- jint hash;
- void *return_value;
-
- hash = obj_id % table->size;
-
- (*env)->MonitorEnter (env, lock);
- return_value = get_node (&table->head[hash], obj_id);
- (*env)->MonitorExit (env, lock);
-
- return return_value;
-}
-
-void *
-remove_state_oid (JNIEnv *env, jobject lock, struct state_table *table,
- jint obj_id)
-{
- jint hash;
- void *return_value;
-
- hash = obj_id % table->size;
-
- (*env)->MonitorEnter (env, lock);
- return_value = remove_node (&table->head[hash], obj_id);
- (*env)->MonitorExit (env, lock);
-
- return return_value;
-}
-
-int
-set_state (JNIEnv *env, jobject obj, struct state_table *table, void *state)
-{
- jint obj_id;
- obj_id = (*env)->GetIntField (env, obj, table->hash);
-
- if ((*env)->ExceptionOccurred (env) != NULL)
- return -1;
-
- set_state_oid (env, table->clazz, table, obj_id, state);
- return 0;
-}
-
-void *
-get_state (JNIEnv *env, jobject obj, struct state_table *table)
-{
- jint obj_id;
- obj_id = (*env)->GetIntField (env, obj, table->hash);
-
- if ((*env)->ExceptionOccurred (env) != NULL)
- return NULL;
-
- return get_state_oid (env, table->clazz, table, obj_id);
-}
-
-void *
-remove_state_slot (JNIEnv *env, jobject obj, struct state_table *table)
-{
- jint obj_id;
- obj_id = (*env)->GetIntField (env, obj, table->hash);
-
- if ((*env)->ExceptionOccurred (env) != NULL)
- return NULL;
-
- return remove_state_oid (env, table->clazz, table, obj_id);
-}
diff --git a/libjava/jni/classpath/native_state.h b/libjava/jni/classpath/native_state.h
deleted file mode 100644
index 0a4edbd..0000000
--- a/libjava/jni/classpath/native_state.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Magical NSA API -- Associate a C ptr with an instance of an object
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-#ifndef JCL_NATIVE_STATE
-#define JCL_NATIVE_STATE
-
-#include <jni.h>
-
-struct state_table
-{
- jint size; /* number of slots, should be prime */
- jfieldID hash; /* field containing System.identityHashCode(this) */
- jclass clazz; /* lock aquired for reading/writing nodes */
- struct state_node **head;
-};
-
-struct state_node
-{
- jint key;
- void *c_state;
- struct state_node *next;
-};
-
-struct state_table * init_state_table_with_size (JNIEnv *, jclass, jint);
-struct state_table * init_state_table (JNIEnv *, jclass);
-
-/* lowlevel api */
-void set_state_oid (JNIEnv *, jobject, struct state_table *, jint, void *);
-void * get_state_oid (JNIEnv *, jobject, struct state_table *, jint);
-void * remove_state_oid (JNIEnv *, jobject, struct state_table *, jint);
-
-/* highlevel api */
-int set_state (JNIEnv *, jobject, struct state_table *, void *);
-void * get_state (JNIEnv *, jobject, struct state_table *);
-void * remove_state_slot (JNIEnv *, jobject, struct state_table *);
-
-#endif