public inbox for java-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Patch: Use GNU Classpath's jawt implementation
@ 2005-08-30 21:29 Thomas Fitzsimmons
  0 siblings, 0 replies; only message in thread
From: Thomas Fitzsimmons @ 2005-08-30 21:29 UTC (permalink / raw)
  To: java-patches

[-- Attachment #1: Type: text/plain, Size: 766 bytes --]

Hi,

I haven't committed this yet; it should be committed during the next GNU
Classpath import.  It removes the AWT Native Interface implementation in
libgcj and points Makefile.am at GNU Classpath's implementation.

One question is: should we rename libgcjawt.so to libjawtgnu.so to match
GNU Classpath's naming?

Tom

2005-08-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am (libgcjawt_la_SOURCES): Remove jawt.c.  Add
	classpath/native/jawt/jawt.c.
	* Makefile.in: Regenerate.
	* jawt.c: Remove file.
	* include/Makefile.am (tool_include__HEADERS): Remove jawt.h and
	jawt_md.h.  Add ../classpath/include/jawt.h and
	../classpath/include/jawt_md.h.
	* include/Makefile.in: Regenerate.
	* include/jawt.h: Regenerate.
	* include/jawt_md.h: Regenerate.


[-- Attachment #2: libgcj-use-classpath-jawt.patch --]
[-- Type: text/x-patch, Size: 13678 bytes --]

Index: Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.am,v
retrieving revision 1.500
diff -u -r1.500 Makefile.am
--- Makefile.am	23 Aug 2005 16:54:24 -0000	1.500
+++ Makefile.am	30 Aug 2005 21:13:53 -0000
@@ -263,7 +263,7 @@
         -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) $(X_LIBS) -lXtst
 lib_gnu_java_awt_peer_gtk_la_LINK = $(LIBLINK)
 
-libgcjawt_la_SOURCES = jawt.c
+libgcjawt_la_SOURCES = classpath/native/jawt/jawt.c
 libgcjawt_la_CFLAGS = -I$(srcdir)/classpath/native/jni/classpath \
 	$(PEDANTIC_CFLAGS) $(X_CFLAGS)
 ## See jv_convert_LDADD.
Index: jawt.c
===================================================================
RCS file: jawt.c
diff -N jawt.c
--- jawt.c	30 Jun 2005 03:18:31 -0000	1.7
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,178 +0,0 @@
-/* jawt.c -- X11 implementation of the AWT Native Interface
-   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. */
-
-#include <stdlib.h>
-#include <jni.h>
-#include <jawt.h>
-#include <jawt_md.h>
-#include "classpath_jawt.h"
-
-static jint (JNICALL _Jv_Lock) (JAWT_DrawingSurface* surface);
-static void (JNICALL _Jv_Unlock) (JAWT_DrawingSurface* surface);
-static JAWT_DrawingSurfaceInfo* (JNICALL _Jv_GetDrawingSurfaceInfo)
-     (JAWT_DrawingSurface* surface);
-static void (JNICALL _Jv_FreeDrawingSurfaceInfo)
-     (JAWT_DrawingSurfaceInfo* surface_info);
-static JAWT_DrawingSurface* (JNICALL _Jv_GetDrawingSurface) (JNIEnv* env,
-							     jobject canvas);
-static void (JNICALL _Jv_FreeDrawingSurface) (JAWT_DrawingSurface* surface);
-static void (JNICALL _Jv_AWTLock) (JNIEnv*);
-static void (JNICALL _Jv_AWTUnlock) (JNIEnv*);
-
-JNIEXPORT jboolean JNICALL
-JAWT_GetAWT (JNIEnv* env, JAWT* awt)
-{
-  jint retrieved_version;
-
-  retrieved_version = classpath_jawt_get_awt_version ();
-
-  if (awt->version > retrieved_version)
-    return JNI_FALSE;
-
-  awt->GetDrawingSurface = _Jv_GetDrawingSurface;
-  awt->FreeDrawingSurface = _Jv_FreeDrawingSurface;
-  awt->Lock = _Jv_AWTLock;
-  awt->Unlock = _Jv_AWTUnlock;
-
-  return JNI_TRUE;
-}
-
-/* JAWT_DrawingSurface functions */
-
-static jint
-(JNICALL _Jv_Lock) (JAWT_DrawingSurface* surface)
-{
-  return classpath_jawt_object_lock (surface->lock);
-}
-
-static void
-(JNICALL _Jv_Unlock) (JAWT_DrawingSurface* surface)
-{
-  classpath_jawt_object_unlock (surface->lock);
-}
-
-static JAWT_DrawingSurfaceInfo*
-(JNICALL _Jv_GetDrawingSurfaceInfo) (JAWT_DrawingSurface* surface)
-{
-  if (surface == NULL)
-    return NULL;
-
-  return surface->surface_info;
-}
-
-static void
-(JNICALL _Jv_FreeDrawingSurfaceInfo) (JAWT_DrawingSurfaceInfo* surface_info)
-{
-  JAWT_X11DrawingSurfaceInfo* surface_info_x11;
-
-  if (surface_info == NULL)
-    return;
-
-  surface_info_x11 = (JAWT_X11DrawingSurfaceInfo*) surface_info->platformInfo;
-
-  surface_info_x11->display = NULL;
-  surface_info_x11->drawable = 0;
-  surface_info_x11->visualID = 0;
-
-  free (surface_info->platformInfo);
-  free (surface_info);
-  surface_info = NULL;
-}
-
-/* JAWT functions */
-
-static JAWT_DrawingSurface*
-(JNICALL _Jv_GetDrawingSurface) (JNIEnv* env, jobject canvas)
-{
-  JAWT_DrawingSurface* surface;
-  JAWT_X11DrawingSurfaceInfo* surface_info_x11;
-
-  surface = (JAWT_DrawingSurface*) malloc (sizeof (JAWT_DrawingSurface));
-
-  if (surface == NULL)
-    return NULL;
-
-  /* initialize function pointers */
-  surface->GetDrawingSurfaceInfo = _Jv_GetDrawingSurfaceInfo;
-  surface->FreeDrawingSurfaceInfo = _Jv_FreeDrawingSurfaceInfo;
-
-  surface->Lock = _Jv_Lock;
-  surface->Unlock = _Jv_Unlock;
-
-  surface->surface_info = (JAWT_DrawingSurfaceInfo*) malloc (sizeof (JAWT_DrawingSurfaceInfo));
-
-  surface->lock = classpath_jawt_create_lock ();
-
-  if (surface->surface_info == NULL)
-    return NULL;
-
-  surface->surface_info->platformInfo = malloc (sizeof (JAWT_X11DrawingSurfaceInfo));
-
-  if (surface->surface_info->platformInfo == NULL)
-    return NULL;
-
-  surface_info_x11 = (JAWT_X11DrawingSurfaceInfo*) surface->surface_info->platformInfo;
-
-  surface_info_x11->display = classpath_jawt_get_default_display (env, canvas);
-  surface_info_x11->drawable = classpath_jawt_get_drawable (env, canvas);
-  surface_info_x11->visualID = classpath_jawt_get_visualID (env, canvas);
-
-  /* FIXME: also include bounding rectangle of drawing surface */
-  /* FIXME: also include current clipping region */
-
-  return surface;
-}
-
-static void
-(JNICALL _Jv_FreeDrawingSurface) (JAWT_DrawingSurface* surface)
-{
-  classpath_jawt_destroy_lock (surface->lock);
-  free (surface);
-}
-
-static void
-(JNICALL _Jv_AWTLock) (JNIEnv* env)
-{
-  classpath_jawt_lock ();
-}
-
-static void
-(JNICALL _Jv_AWTUnlock) (JNIEnv* env)
-{
-  classpath_jawt_unlock ();
-}
-
Index: include/Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libjava/include/Makefile.am,v
retrieving revision 1.11
diff -u -r1.11 Makefile.am
--- include/Makefile.am	22 Jul 2005 20:45:36 -0000	1.11
+++ include/Makefile.am	30 Aug 2005 21:13:55 -0000
@@ -11,5 +11,5 @@
 tool_include_dir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include
 ## The 'jni.h' here is fairly hacky, but it is simpler than trying to
 ## tell Classpath about our peculiar install directory.
-tool_include__HEADERS = jni_md.h jawt.h jawt_md.h jvmpi.h \
-	../classpath/include/jni.h
+tool_include__HEADERS = jni_md.h ../classpath/include/jawt.h \
+	../classpath/include/jawt_md.h jvmpi.h ../classpath/include/jni.h
Index: include/jawt.h
===================================================================
RCS file: include/jawt.h
diff -N include/jawt.h
--- include/jawt.h	30 Jun 2005 03:19:24 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,101 +0,0 @@
-/* jawt.h -- the machine-independent parts of the AWT Native Interface
-   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. */
-
-
-/*
- * The AWT Native Interface allows direct access to native screen
- * resources from within a Canvas's paint method.
- */
-
-#ifndef __jawt_h__
-#define __jawt_h__
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#define JAWT_VERSION_1_3 0x10003
-#define JAWT_VERSION_1_4 0x10004
-
-#define JAWT_LOCK_ERROR 0x1
-#define JAWT_LOCK_CLIP_CHANGED 0x2
-#define JAWT_LOCK_BOUNDS_CHANGED 0x4
-#define JAWT_LOCK_SURFACE_CHANGED 0x8
-
-struct _JAWT_DrawingSurfaceInfo
-{
-  void* platformInfo;
-};
-
-struct _JAWT_DrawingSurface
-{
-  jint (JNICALL* Lock) (struct _JAWT_DrawingSurface*);
-  void (JNICALL* Unlock) (struct _JAWT_DrawingSurface*);
-
-  struct _JAWT_DrawingSurfaceInfo* (JNICALL* GetDrawingSurfaceInfo) (struct _JAWT_DrawingSurface*);
-  void (JNICALL* FreeDrawingSurfaceInfo) (struct _JAWT_DrawingSurfaceInfo*);
-
-  struct _JAWT_DrawingSurfaceInfo* surface_info;
-
-  /* An object we're going to use for locking the surface.  */
-  jobject lock;
-
-  /* FIXME: also include bounding rectangle of drawing surface. */
-  /* FIXME: also include current clipping region. */
-};
-
-struct _JAWT
-{
-  jint version;
-  struct _JAWT_DrawingSurface* (JNICALL* GetDrawingSurface) (JNIEnv*, jobject);
-  void (JNICALL* FreeDrawingSurface) (struct _JAWT_DrawingSurface*);
-  void (JNICALL *Lock) (JNIEnv*);
-  void (JNICALL *Unlock) (JNIEnv*);
-};
-
-typedef struct _JAWT_DrawingSurfaceInfo JAWT_DrawingSurfaceInfo;
-typedef struct _JAWT_DrawingSurface JAWT_DrawingSurface;
-typedef struct _JAWT JAWT;
-
-JNIEXPORT jboolean JNICALL JAWT_GetAWT (JNIEnv* env, struct _JAWT* awt);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __jawt_h__ */
Index: include/jawt_md.h
===================================================================
RCS file: include/jawt_md.h
diff -N include/jawt_md.h
--- include/jawt_md.h	30 Jun 2005 03:19:24 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,64 +0,0 @@
-/* jawt_md.h -- the X11-dependent parts of the AWT Native Interface
-   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. */
-
-
-#ifndef __jawt_md_h__
-#define __jawt_md_h__
-
-#include <jni.h>
-#include <jawt.h>
-#include <X11/Xlib.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-struct _JAWT_X11DrawingSurfaceInfo
-{
-  Display* display;
-  Drawable drawable;
-  VisualID visualID;
-};
-
-typedef struct _JAWT_X11DrawingSurfaceInfo JAWT_X11DrawingSurfaceInfo;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __jawt_md_h__ */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-08-30 21:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-08-30 21:29 Patch: Use GNU Classpath's jawt implementation Thomas Fitzsimmons

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).