[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r2968 - in freeway: native src/org/gnu/freeway/cwrappers/ut
From: |
mdonoughe |
Subject: |
[GNUnet-SVN] r2968 - in freeway: native src/org/gnu/freeway/cwrappers/util |
Date: |
Wed, 7 Jun 2006 17:52:14 -0700 (PDT) |
Author: mdonoughe
Date: 2006-06-07 17:52:10 -0700 (Wed, 07 Jun 2006)
New Revision: 2968
Modified:
freeway/native/org_gnu_freeway_server_CPluginLoader.c
freeway/native/switch-table.c
freeway/native/switch-table.h
freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java
Log:
This one compiles and crashes without link errors.
Modified: freeway/native/org_gnu_freeway_server_CPluginLoader.c
===================================================================
--- freeway/native/org_gnu_freeway_server_CPluginLoader.c 2006-06-07
23:58:36 UTC (rev 2967)
+++ freeway/native/org_gnu_freeway_server_CPluginLoader.c 2006-06-08
00:52:10 UTC (rev 2968)
@@ -30,6 +30,7 @@
#include <GNUnet/gnunet_util.h>
#include <GNUnet/gnunet_core.h>
#include "org_gnu_freeway_server_CPluginLoader.h"
+#include "switch-table.h"
/* FIXME: #include "platform.h", plibc? config.h? */
#define _(a) a
@@ -97,7 +98,7 @@
if(input == NULL)
return 0;
- classCInt = (*env)->FindClass(env, "org/gnu/freeway/cwrappers/CLong");
+ classCLong = (*env)->FindClass(env, "org/gnu/freeway/cwrappers/CLong");
if(classCLong == NULL)
return 0;
method = (*env)->GetMethodID(env, classCLong, "getValue", "()J");
@@ -112,7 +113,7 @@
jclass classCLong;
jmethodID method;
- classCInt = (*env)->FindClass(env, "org/gnu/freeway/cwrappers/CLong");
+ classCLong = (*env)->FindClass(env, "org/gnu/freeway/cwrappers/CLong");
if(classCLong == NULL)
return 0;
method = (*env)->GetMethodID(env, classCLong, "<init>", "(J)V");
@@ -163,14 +164,14 @@
jmethodID method;
if(input == NULL)
- return NULL;
+ return;
objectClass = (*env)->GetObjectClass(env, input);
if(objectClass == NULL)
- return NULL;
+ return;
method = (*env)->GetMethodID(env, objectClass, "deserializeFromByteArray",
"([B)V");
if(method == NULL)
- return NULL;
- jByteArray = (*env)->CallObjectMethod(env, target, method, input);
+ return;
+ (*env)->CallVoidMethod(env, target, method, input);
fprintf(stderr, "leaving updateObjectFromPtr\n");
}
Modified: freeway/native/switch-table.c
===================================================================
--- freeway/native/switch-table.c 2006-06-07 23:58:36 UTC (rev 2967)
+++ freeway/native/switch-table.c 2006-06-08 00:52:10 UTC (rev 2968)
@@ -1,7 +1,14 @@
// This file was autogenerated by SwitchTableGenerator
-jobject * jargs = (*env)->GetObjectArrayElements(env, arguments, NULL);
-if(jargs == NULL)
- return NULL;
+jobject * jargs;
+int jargLength = (*env)->GetArrayLength(env, arguments);
+if(jargLength > 0) {
+ jargs = malloc(sizeof(jobject) * jargLength);
+ GNUNET_ASSERT(jargs != NULL);
+ int jargsI;
+ for(jargsI = 0; jargsI < jargLength; jargsI++) {
+ jargs[jargsI] = (*env)->GetObjectArrayElement(env, arguments, jargsI);
+ }
+}
switch (functionType) {
case 13: {
void * carg0 = convObjectToPtr(jargs[0], env);
@@ -25,6 +32,7 @@
oret = convLongToCLong(cret, env);
}
default:
- assert(0);
+ GNUNET_ASSERT(0);
}
-(*env)->ReleaseObjectArrayElements(env, arguments, jargs, 0);
+if(jargs != NULL)
+ free(jargs);
Modified: freeway/native/switch-table.h
===================================================================
--- freeway/native/switch-table.h 2006-06-07 23:58:36 UTC (rev 2967)
+++ freeway/native/switch-table.h 2006-06-08 00:52:10 UTC (rev 2968)
@@ -1,5 +1,5 @@
// This file was autogenerated by SwitchTableGenerator
-typedef int (FunctionType13*)(void * arg0);
-typedef void (FunctionType60*)(int arg0, long long arg1);
-typedef void (FunctionType42*)(int arg0, int arg1);
-typedef long long (FunctionType10*)(int arg0);
+typedef int (*FunctionType13)(void * arg0);
+typedef void (*FunctionType60)(int arg0, long long arg1);
+typedef void (*FunctionType42)(int arg0, int arg1);
+typedef long long (*FunctionType10)(int arg0);
Modified: freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java
===================================================================
--- freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java
2006-06-07 23:58:36 UTC (rev 2967)
+++ freeway/src/org/gnu/freeway/cwrappers/util/SwitchTableGenerator.java
2006-06-08 00:52:10 UTC (rev 2968)
@@ -347,9 +347,16 @@
System.err.println("Writing the switch table");
writerC.write("// This file was autogenerated by
SwitchTableGenerator\n");
writerH.write("// This file was autogenerated by
SwitchTableGenerator\n");
- writerC.write("jobject * jargs =
(*env)->GetObjectArrayElements(env, arguments, NULL);\n");
- writerC.write("if(jargs == NULL)\n");
- writerC.write(" return NULL;\n");
+ writerC.write("jobject * jargs;\n");
+ writerC.write("int jargLength = (*env)->GetArrayLength(env,
arguments);\n");
+ writerC.write("if(jargLength > 0) {\n");
+ writerC.write(" jargs = malloc(sizeof(jobject) *
jargLength);\n");
+ writerC.write(" GNUNET_ASSERT(jargs != NULL);\n");
+ writerC.write(" int jargsI;\n");
+ writerC.write(" for(jargsI = 0; jargsI < jargLength; jargsI++)
{\n");
+ writerC.write(" jargs[jargsI] =
(*env)->GetObjectArrayElement(env, arguments, jargsI);\n");
+ writerC.write(" }\n");
+ writerC.write("}\n");
writerC.write("switch (functionType) {\n");
for(Iterator i = functionTypeSet.iterator(); i.hasNext(); ) {
Integer functionType = (Integer) i.next();
@@ -357,9 +364,10 @@
writeFunctionTypeDefine(functionType.intValue(),
writerH);
}
writerC.write(" default:\n");
- writerC.write(" assert(0);\n");
+ writerC.write(" GNUNET_ASSERT(0);\n");
writerC.write("}\n");
- writerC.write("(*env)->ReleaseObjectArrayElements(env,
arguments, jargs, 0);\n");
+ writerC.write("if(jargs != NULL)\n");
+ writerC.write(" free(jargs);\n");
}
public static void writeSwitch(int functionType, Writer writer) throws
IOException {
@@ -450,7 +458,7 @@
public static void writeFunctionTypeDefine(int functionType, Writer
writer) throws IOException {
int returnType = functionType % CWrapper.MAX_KIND;
- StringBuffer typedef = new StringBuffer("typedef " +
CWrapper.CTYPES[returnType] + " (FunctionType" + functionType + "*)(");
+ StringBuffer typedef = new StringBuffer("typedef " +
CWrapper.CTYPES[returnType] + " (*FunctionType" + functionType + ")(");
functionType = (functionType - returnType) / CWrapper.MAX_KIND;
//a - the current position(base MAX_KIND)
//maxA - the initial value of a(puts the arguments in order)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r2968 - in freeway: native src/org/gnu/freeway/cwrappers/util,
mdonoughe <=