gnunet-svn
[Top][All Lists]
Advanced

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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]