[kaffe] CVS kaffe (dalibor): Added missing file from last commit

Kaffe CVS cvs-commits at kaffe.org
Wed Apr 28 14:54:03 PDT 2004


PatchSet 4710 
Date: 2004/04/28 20:58:01
Author: dalibor
Branch: HEAD
Tag: (none) 
Log:
Added missing file from last commit

Members: 
	libraries/clib/sound/common/HandleFieldHandler.h:INITIAL->1.1 

===================================================================
Checking out kaffe/libraries/clib/sound/common/HandleFieldHandler.h
RCS:  /home/cvs/kaffe/kaffe/libraries/clib/sound/common/HandleFieldHandler.h,v
VERS: 1.1
***************
--- /dev/null	Sun Aug  4 19:57:58 2002
+++ kaffe/libraries/clib/sound/common/HandleFieldHandler.h	Wed Apr 28 21:02:45 2004
@@ -0,0 +1,75 @@
+/*
+ *	HandleFieldHandler.h
+ */
+
+/*
+ *  Copyright (c) 1999 - 2002 by Matthias Pfisterer <Matthias.Pfisterer at web.de>
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU Library General Public License as published
+ *   by the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program 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 Library General Public License for more details.
+ *
+ *   You should have received a copy of the GNU Library General Public
+ *   License along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef _HANDLE_FIELD_HANDLER_H
+#define _HANDLE_FIELD_HANDLER_H
+
+
+#include <jni.h>
+
+
+#define HandleFieldHandler(_type)            \
+HandleFieldHandlerDeclaration(_handler, _type)
+
+#define HandleFieldHandlerDeclaration(_variableName, _type)            \
+static jfieldID  _variableName ## FieldID = NULL;                      \
+                                                                       \
+static jfieldID                                                        \
+getNativeHandleFieldID(JNIEnv *env, jobject obj)                       \
+{                                                                      \
+	if (_variableName ## FieldID == NULL)                          \
+	{                                                              \
+		jclass	cls = (*env)->GetObjectClass(env, obj);                \
+		if (cls == NULL)                                       \
+		{                                                      \
+			throwRuntimeException(env, "cannot get class"); \
+		}                                                      \
+		_variableName ## FieldID = (*env)->GetFieldID(env, cls, "m_lNativeHandle", "J"); \
+		if (_variableName ## FieldID == NULL)                  \
+		{                                                      \
+			throwRuntimeException(env, "cannot get field ID for m_lNativeHandle"); \
+		}                                                      \
+	}                                                              \
+	return _variableName ## FieldID;                               \
+}                                                                      \
+                                                                       \
+static void                                                            \
+setHandle(JNIEnv *env, jobject obj, _type handle)                      \
+{                                                                      \
+	jfieldID	fieldID = getNativeHandleFieldID(env, obj);    \
+	(*env)->SetLongField(env, obj, fieldID, (jlong) (int) handle);       \
+}                                                                      \
+                                                                       \
+static _type                                                           \
+getHandle(JNIEnv *env, jobject obj)                                    \
+{                                                                      \
+	jfieldID	fieldID = getNativeHandleFieldID(env, obj);    \
+	_type	handle = (_type) (int) (*env)->GetLongField(env, obj, fieldID); \
+	return handle;                                                 \
+}
+
+
+
+#endif /* _HANDLE_FIELD_HANDLER_H */
+
+
+/*** HandleFieldHandler.h ***/




More information about the kaffe mailing list