*** empty log message ***
This commit is contained in:
parent
6525f98cda
commit
99bb5ee025
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: Awk.java,v 1.20 2007-01-24 11:54:15 bacon Exp $
|
* $Id: Awk.java,v 1.21 2007-01-24 14:21:29 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ase.awk;
|
package ase.awk;
|
||||||
@ -57,8 +57,9 @@ public abstract class Awk
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* == just in case == */
|
/* == just in case == */
|
||||||
protected void finalize ()
|
protected void finalize () throws Throwable
|
||||||
{
|
{
|
||||||
|
super.finalize ();
|
||||||
if (handle != 0) close ();
|
if (handle != 0) close ();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,7 +70,7 @@ public abstract class Awk
|
|||||||
public native void run () throws Exception;
|
public native void run () throws Exception;
|
||||||
|
|
||||||
private native int getmaxdepth (int id);
|
private native int getmaxdepth (int id);
|
||||||
private native int setmaxdepth (int id, int depth);
|
private native void setmaxdepth (int id, int depth);
|
||||||
|
|
||||||
private native void addbfn (
|
private native void addbfn (
|
||||||
String name, int min_args, int max_args) throws Exception;
|
String name, int min_args, int max_args) throws Exception;
|
||||||
@ -80,7 +81,8 @@ public abstract class Awk
|
|||||||
private native void setofilename (
|
private native void setofilename (
|
||||||
long runid, String name) throws Exception;
|
long runid, String name) throws Exception;
|
||||||
|
|
||||||
private native Object strtonum (long runid, String str);
|
private native Object strtonum (
|
||||||
|
long runid, String str) throws Exception;
|
||||||
private native String valtostr (long runid, Object obj);
|
private native String valtostr (long runid, Object obj);
|
||||||
|
|
||||||
/* == builtin functions == */
|
/* == builtin functions == */
|
||||||
@ -95,7 +97,8 @@ public abstract class Awk
|
|||||||
delbfn (name);
|
delbfn (name);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected long builtinFunctionArgumentToLong (long runid, Object obj)
|
protected long builtinFunctionArgumentToLong (
|
||||||
|
long runid, Object obj) throws Exception
|
||||||
{
|
{
|
||||||
long n;
|
long n;
|
||||||
|
|
||||||
@ -131,7 +134,8 @@ public abstract class Awk
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected double builtinFunctionArgumentToDouble (long runid, Object obj)
|
protected double builtinFunctionArgumentToDouble (
|
||||||
|
long runid, Object obj) throws Exception
|
||||||
{
|
{
|
||||||
double n;
|
double n;
|
||||||
|
|
||||||
@ -167,7 +171,8 @@ public abstract class Awk
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String builtinFunctionArgumentToString (long runid, Object obj)
|
protected String builtinFunctionArgumentToString (
|
||||||
|
long runid, Object obj) throws Exception
|
||||||
{
|
{
|
||||||
String str;
|
String str;
|
||||||
|
|
||||||
@ -179,7 +184,8 @@ public abstract class Awk
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* == console name setters == */
|
/* == console name setters == */
|
||||||
protected void setConsoleInputName (Extio extio, String name) throws Exception
|
protected void setConsoleInputName (
|
||||||
|
Extio extio, String name) throws Exception
|
||||||
{
|
{
|
||||||
/* TODO: setfilename is not safe. for example, it can
|
/* TODO: setfilename is not safe. for example, it can
|
||||||
* crash the program if runid is invalid. so this wrapper
|
* crash the program if runid is invalid. so this wrapper
|
||||||
@ -187,7 +193,8 @@ public abstract class Awk
|
|||||||
setfilename (extio.getRunId(), name);
|
setfilename (extio.getRunId(), name);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setConsoleOutputName (Extio extio, String name) throws Exception
|
protected void setConsoleOutputName (
|
||||||
|
Extio extio, String name) throws Exception
|
||||||
{
|
{
|
||||||
setofilename (extio.getRunId(), name);
|
setofilename (extio.getRunId(), name);
|
||||||
}
|
}
|
||||||
|
@ -62,8 +62,8 @@ public class Extio
|
|||||||
return this.handle;
|
return this.handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void finalize ()
|
protected void finalize () throws Throwable
|
||||||
{
|
{
|
||||||
System.out.println ("Extio being finalized....");
|
super.finalize ();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: StdAwk.java,v 1.11 2007-01-23 14:23:18 bacon Exp $
|
* $Id: StdAwk.java,v 1.12 2007-01-24 14:21:29 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ase.awk;
|
package ase.awk;
|
||||||
@ -707,44 +707,44 @@ public abstract class StdAwk extends Awk
|
|||||||
|
|
||||||
|
|
||||||
/* == arithmetic built-in functions */
|
/* == arithmetic built-in functions */
|
||||||
public Object sin (long runid, Object[] args)
|
public Object sin (long runid, Object[] args) throws Exception
|
||||||
{
|
{
|
||||||
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
||||||
return new Double (Math.sin(x));
|
return new Double (Math.sin(x));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object cos (long runid, Object[] args)
|
public Object cos (long runid, Object[] args) throws Exception
|
||||||
{
|
{
|
||||||
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
||||||
return new Double (Math.cos(x));
|
return new Double (Math.cos(x));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object tan (long runid, Object[] args)
|
public Object tan (long runid, Object[] args) throws Exception
|
||||||
{
|
{
|
||||||
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
||||||
return new Double (Math.tan(x));
|
return new Double (Math.tan(x));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object atan2 (long runid, Object[] args)
|
public Object atan2 (long runid, Object[] args) throws Exception
|
||||||
{
|
{
|
||||||
double y = builtinFunctionArgumentToDouble (runid, args[0]);
|
double y = builtinFunctionArgumentToDouble (runid, args[0]);
|
||||||
double x = builtinFunctionArgumentToDouble (runid, args[1]);
|
double x = builtinFunctionArgumentToDouble (runid, args[1]);
|
||||||
return new Double (Math.atan2(y,x));
|
return new Double (Math.atan2(y,x));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object log (long runid, Object[] args)
|
public Object log (long runid, Object[] args) throws Exception
|
||||||
{
|
{
|
||||||
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
||||||
return new Double (Math.log(x));
|
return new Double (Math.log(x));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object exp (long runid, Object[] args)
|
public Object exp (long runid, Object[] args) throws Exception
|
||||||
{
|
{
|
||||||
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
||||||
return new Double (Math.exp(x));
|
return new Double (Math.exp(x));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object sqrt (long runid, Object[] args)
|
public Object sqrt (long runid, Object[] args) throws Exception
|
||||||
{
|
{
|
||||||
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
double x = builtinFunctionArgumentToDouble (runid, args[0]);
|
||||||
return new Double (Math.sqrt(x));
|
return new Double (Math.sqrt(x));
|
||||||
@ -755,7 +755,7 @@ public abstract class StdAwk extends Awk
|
|||||||
return new Double (random.nextDouble ());
|
return new Double (random.nextDouble ());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object srand (long runid, Object[] args)
|
public Object srand (long runid, Object[] args) throws Exception
|
||||||
{
|
{
|
||||||
long prev_seed = seed;
|
long prev_seed = seed;
|
||||||
|
|
||||||
@ -768,7 +768,7 @@ public abstract class StdAwk extends Awk
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* miscellaneous built-in functions */
|
/* miscellaneous built-in functions */
|
||||||
public Object system (long runid, Object[] args)
|
public Object system (long runid, Object[] args) throws Exception
|
||||||
{
|
{
|
||||||
String str = builtinFunctionArgumentToString (runid, args[0]);
|
String str = builtinFunctionArgumentToString (runid, args[0]);
|
||||||
Process proc = null;
|
Process proc = null;
|
||||||
|
145
ase/awk/jni.c
145
ase/awk/jni.c
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: jni.c,v 1.52 2007-01-24 11:54:16 bacon Exp $
|
* $Id: jni.c,v 1.53 2007-01-24 14:21:29 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -13,7 +13,6 @@
|
|||||||
#include <ase/awk/jni.h>
|
#include <ase/awk/jni.h>
|
||||||
#include <ase/awk/awk.h>
|
#include <ase/awk/awk.h>
|
||||||
#include <ase/awk/val.h>
|
#include <ase/awk/val.h>
|
||||||
//#include <ase/awk/awk_i.h>
|
|
||||||
|
|
||||||
#include "../etc/printf.c"
|
#include "../etc/printf.c"
|
||||||
|
|
||||||
@ -204,10 +203,13 @@ static void throw_exception (
|
|||||||
{
|
{
|
||||||
(*env)->DeleteLocalRef (env, except_class);
|
(*env)->DeleteLocalRef (env, except_class);
|
||||||
|
|
||||||
except_class = (*env)->FindClass (env, CLASS_OUTOFMEMORYERROR);
|
except_class = (*env)->FindClass (
|
||||||
|
env, CLASS_OUTOFMEMORYERROR);
|
||||||
if (except_class == NULL) return;
|
if (except_class == NULL) return;
|
||||||
|
|
||||||
(*env)->ThrowNew (env, except_class, "out of memory");
|
(*env)->ThrowNew (
|
||||||
|
env, except_class,
|
||||||
|
ase_awk_geterrstr(ASE_AWK_ENOMEM));
|
||||||
(*env)->DeleteLocalRef (env, except_class);
|
(*env)->DeleteLocalRef (env, except_class);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -291,11 +293,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_open (JNIEnv* env, jobject obj)
|
|||||||
(*env)->DeleteLocalRef (env, class);
|
(*env)->DeleteLocalRef (env, class);
|
||||||
if (handle == NULL)
|
if (handle == NULL)
|
||||||
{
|
{
|
||||||
throw_exception (
|
/* internal error. no handle field
|
||||||
env,
|
* NoSuchFieldError, ExceptionInitializerError,
|
||||||
ASE_T("no handle field found"),
|
* OutOfMemoryError might occur */
|
||||||
ASE_AWK_EINTERN,
|
|
||||||
0);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -318,7 +318,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_close (JNIEnv* env, jobject obj)
|
|||||||
(*env)->DeleteLocalRef (env, class);
|
(*env)->DeleteLocalRef (env, class);
|
||||||
if (handle == NULL)
|
if (handle == NULL)
|
||||||
{
|
{
|
||||||
/* internal error. no handle field */
|
/* internal error. no handle field
|
||||||
|
* NoSuchFieldError, ExceptionInitializerError,
|
||||||
|
* OutOfMemoryError might occur */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -345,11 +347,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_parse (JNIEnv* env, jobject obj)
|
|||||||
(*env)->DeleteLocalRef (env, class);
|
(*env)->DeleteLocalRef (env, class);
|
||||||
if (handle == NULL)
|
if (handle == NULL)
|
||||||
{
|
{
|
||||||
throw_exception (
|
/* internal error. no handle field
|
||||||
env,
|
* NoSuchFieldError, ExceptionInitializerError,
|
||||||
ASE_T("no handle field found"),
|
* OutOfMemoryError might occur */
|
||||||
ASE_AWK_EINTERN,
|
|
||||||
0);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -397,11 +397,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_run (JNIEnv* env, jobject obj)
|
|||||||
(*env)->DeleteLocalRef (env, class);
|
(*env)->DeleteLocalRef (env, class);
|
||||||
if (handle == 0)
|
if (handle == 0)
|
||||||
{
|
{
|
||||||
throw_exception (
|
/* internal error. no handle field
|
||||||
env,
|
* NoSuchFieldError, ExceptionInitializerError,
|
||||||
ASE_T("no handle field found"),
|
* OutOfMemoryError might occur */
|
||||||
ASE_AWK_EINTERN,
|
|
||||||
0);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -627,8 +625,7 @@ static ase_ssize_t __java_write_source (
|
|||||||
thrown = (*env)->ExceptionOccurred (env);
|
thrown = (*env)->ExceptionOccurred (env);
|
||||||
if (thrown)
|
if (thrown)
|
||||||
{
|
{
|
||||||
/* TODO: remove the following line */
|
if (awk->debug) (*env)->ExceptionDescribe (env);
|
||||||
(*env)->ExceptionDescribe (env);
|
|
||||||
(*env)->ExceptionClear (env);
|
(*env)->ExceptionClear (env);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
@ -863,7 +860,6 @@ static ase_ssize_t __java_flush_extio (
|
|||||||
{
|
{
|
||||||
jclass class;
|
jclass class;
|
||||||
jmethodID mid;
|
jmethodID mid;
|
||||||
jthrowable thrown;
|
|
||||||
jint ret;
|
jint ret;
|
||||||
|
|
||||||
class = (*env)->GetObjectClass(env, obj);
|
class = (*env)->GetObjectClass(env, obj);
|
||||||
@ -875,10 +871,9 @@ static ase_ssize_t __java_flush_extio (
|
|||||||
}
|
}
|
||||||
|
|
||||||
ret = (*env)->CallIntMethod (env, obj, mid, extio->handle);
|
ret = (*env)->CallIntMethod (env, obj, mid, extio->handle);
|
||||||
thrown = (*env)->ExceptionOccurred (env);
|
if ((*env)->ExceptionOccurred (env))
|
||||||
if (thrown)
|
|
||||||
{
|
{
|
||||||
(*env)->ExceptionDescribe (env);
|
if (awk->debug) (*env)->ExceptionDescribe (env);
|
||||||
(*env)->ExceptionClear (env);
|
(*env)->ExceptionClear (env);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
@ -891,7 +886,6 @@ static ase_ssize_t __java_next_extio (
|
|||||||
{
|
{
|
||||||
jclass class;
|
jclass class;
|
||||||
jmethodID mid;
|
jmethodID mid;
|
||||||
jthrowable thrown;
|
|
||||||
jint ret;
|
jint ret;
|
||||||
|
|
||||||
class = (*env)->GetObjectClass(env, obj);
|
class = (*env)->GetObjectClass(env, obj);
|
||||||
@ -903,10 +897,9 @@ static ase_ssize_t __java_next_extio (
|
|||||||
}
|
}
|
||||||
|
|
||||||
ret = (*env)->CallIntMethod (env, obj, mid, extio->handle);
|
ret = (*env)->CallIntMethod (env, obj, mid, extio->handle);
|
||||||
thrown = (*env)->ExceptionOccurred (env);
|
if ((*env)->ExceptionOccurred (env))
|
||||||
if (thrown)
|
|
||||||
{
|
{
|
||||||
(*env)->ExceptionDescribe (env);
|
if (awk->debug) (*env)->ExceptionDescribe (env);
|
||||||
(*env)->ExceptionClear (env);
|
(*env)->ExceptionClear (env);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
@ -1055,9 +1048,7 @@ static int __handle_bfn (
|
|||||||
|
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
{
|
{
|
||||||
if ((*env)->ExceptionOccurred (env))
|
(*env)->ExceptionClear (env);
|
||||||
(*env)->ExceptionClear (env);
|
|
||||||
|
|
||||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, msg_nomem);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, msg_nomem);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1080,8 +1071,7 @@ static int __handle_bfn (
|
|||||||
{
|
{
|
||||||
/* if the method is not found, the exception is thrown.
|
/* if the method is not found, the exception is thrown.
|
||||||
* so clear it to prevent it from being thrown */
|
* so clear it to prevent it from being thrown */
|
||||||
if ((*env)->ExceptionOccurred (env))
|
(*env)->ExceptionClear (env);
|
||||||
(*env)->ExceptionClear (env);
|
|
||||||
ase_awk_setrunerrnum (run, ASE_AWK_EBFNUSER);
|
ase_awk_setrunerrnum (run, ASE_AWK_EBFNUSER);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1168,6 +1158,8 @@ static int __handle_bfn (
|
|||||||
ret = (*env)->CallObjectMethod (env, obj, method, (jlong)run, args);
|
ret = (*env)->CallObjectMethod (env, obj, method, (jlong)run, args);
|
||||||
if ((*env)->ExceptionOccurred (env))
|
if ((*env)->ExceptionOccurred (env))
|
||||||
{
|
{
|
||||||
|
if (awk->debug) (*env)->ExceptionDescribe (env);
|
||||||
|
|
||||||
(*env)->ExceptionClear (env);
|
(*env)->ExceptionClear (env);
|
||||||
(*env)->DeleteLocalRef (env, args);
|
(*env)->DeleteLocalRef (env, args);
|
||||||
ase_awk_setrunerrnum (run, ASE_AWK_EBFNIMPL);
|
ase_awk_setrunerrnum (run, ASE_AWK_EBFNIMPL);
|
||||||
@ -1332,11 +1324,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_addbfn (
|
|||||||
(*env)->DeleteLocalRef (env, class);
|
(*env)->DeleteLocalRef (env, class);
|
||||||
if (handle == NULL)
|
if (handle == NULL)
|
||||||
{
|
{
|
||||||
throw_exception (
|
/* internal error. no handle field
|
||||||
env,
|
* NoSuchFieldError, ExceptionInitializerError,
|
||||||
ASE_T("no handle field found"),
|
* OutOfMemoryError might occur */
|
||||||
ASE_AWK_EINTERN,
|
|
||||||
0);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1346,8 +1336,12 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_addbfn (
|
|||||||
ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
|
ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
|
||||||
if (ptr == NULL)
|
if (ptr == NULL)
|
||||||
{
|
{
|
||||||
if ((*env)->ExceptionOccurred (env)) (*env)->ExceptionClear (env);
|
(*env)->ExceptionClear (env);
|
||||||
throw_exception (env, ASE_T("out of memory"), ASE_AWK_ENOMEM, 0);
|
throw_exception (
|
||||||
|
env,
|
||||||
|
ase_awk_geterrstr(ASE_AWK_ENOMEM),
|
||||||
|
ASE_AWK_ENOMEM,
|
||||||
|
0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1359,7 +1353,11 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_addbfn (
|
|||||||
if (tmp == ASE_NULL)
|
if (tmp == ASE_NULL)
|
||||||
{
|
{
|
||||||
(*env)->ReleaseStringChars (env, name, ptr);
|
(*env)->ReleaseStringChars (env, name, ptr);
|
||||||
throw_exception (env, ASE_T("out of memory"), ASE_AWK_ENOMEM, 0);
|
throw_exception (
|
||||||
|
env,
|
||||||
|
ase_awk_geterrstr(ASE_AWK_ENOMEM),
|
||||||
|
ASE_AWK_ENOMEM,
|
||||||
|
0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1403,11 +1401,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_delbfn (
|
|||||||
(*env)->DeleteLocalRef (env, class);
|
(*env)->DeleteLocalRef (env, class);
|
||||||
if (handle == NULL)
|
if (handle == NULL)
|
||||||
{
|
{
|
||||||
throw_exception (
|
/* internal error. no handle field
|
||||||
env,
|
* NoSuchFieldError, ExceptionInitializerError,
|
||||||
ASE_T("no handle field found"),
|
* OutOfMemoryError might occur */
|
||||||
ASE_AWK_EINTERN,
|
|
||||||
0);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1417,8 +1413,12 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_delbfn (
|
|||||||
ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
|
ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
|
||||||
if (ptr == NULL)
|
if (ptr == NULL)
|
||||||
{
|
{
|
||||||
if ((*env)->ExceptionOccurred (env)) (*env)->ExceptionClear (env);
|
(*env)->ExceptionClear (env);
|
||||||
throw_exception (env, ASE_T("out of memory"), ASE_AWK_ENOMEM, 0);
|
throw_exception (
|
||||||
|
env,
|
||||||
|
ase_awk_geterrstr(ASE_AWK_ENOMEM),
|
||||||
|
ASE_AWK_ENOMEM,
|
||||||
|
0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1430,7 +1430,11 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_delbfn (
|
|||||||
if (tmp == ASE_NULL)
|
if (tmp == ASE_NULL)
|
||||||
{
|
{
|
||||||
(*env)->ReleaseStringChars (env, name, ptr);
|
(*env)->ReleaseStringChars (env, name, ptr);
|
||||||
throw_exception (env, ASE_T("out of memory"), ASE_AWK_ENOMEM, 0);
|
throw_exception (
|
||||||
|
env,
|
||||||
|
ase_awk_geterrstr(ASE_AWK_ENOMEM),
|
||||||
|
ASE_AWK_ENOMEM,
|
||||||
|
0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1481,7 +1485,13 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setmaxdepth (
|
|||||||
class = (*env)->GetObjectClass(env, obj);
|
class = (*env)->GetObjectClass(env, obj);
|
||||||
handle = (*env)->GetFieldID (env, class, FIELD_HANDLE, "J");
|
handle = (*env)->GetFieldID (env, class, FIELD_HANDLE, "J");
|
||||||
(*env)->DeleteLocalRef (env, class);
|
(*env)->DeleteLocalRef (env, class);
|
||||||
if (handle == NULL) return; /* should never happen */
|
if (handle == NULL)
|
||||||
|
{
|
||||||
|
/* internal error. no handle field
|
||||||
|
* NoSuchFieldError, ExceptionInitializerError,
|
||||||
|
* OutOfMemoryError might occur */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
awk = (ase_awk_t*) (*env)->GetLongField (env, obj, handle);
|
||||||
ase_awk_setmaxdepth (awk, ids, depth);
|
ase_awk_setmaxdepth (awk, ids, depth);
|
||||||
@ -1499,10 +1509,11 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setfilename (
|
|||||||
ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
|
ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
|
||||||
if (ptr == NULL)
|
if (ptr == NULL)
|
||||||
{
|
{
|
||||||
|
(*env)->ExceptionClear (env);
|
||||||
throw_exception (
|
throw_exception (
|
||||||
env,
|
env,
|
||||||
ASE_T("out of memory"),
|
ase_awk_geterrstr(ASE_AWK_ENOMEM),
|
||||||
ASE_AWK_ENOMEM,
|
ASE_AWK_ENOMEM,
|
||||||
0);
|
0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1518,7 +1529,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setfilename (
|
|||||||
|
|
||||||
throw_exception (
|
throw_exception (
|
||||||
env,
|
env,
|
||||||
ASE_T("out of memory"),
|
ase_awk_geterrstr(ASE_AWK_ENOMEM),
|
||||||
ASE_AWK_ENOMEM,
|
ASE_AWK_ENOMEM,
|
||||||
0);
|
0);
|
||||||
return;
|
return;
|
||||||
@ -1557,9 +1568,10 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setofilename (
|
|||||||
ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
|
ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
|
||||||
if (ptr == NULL)
|
if (ptr == NULL)
|
||||||
{
|
{
|
||||||
|
(*env)->ExceptionClear (env);
|
||||||
throw_exception (
|
throw_exception (
|
||||||
env,
|
env,
|
||||||
ASE_T("out of memory"),
|
ase_awk_geterrstr(ASE_AWK_ENOMEM),
|
||||||
ASE_AWK_ENOMEM,
|
ASE_AWK_ENOMEM,
|
||||||
0);
|
0);
|
||||||
return;
|
return;
|
||||||
@ -1576,7 +1588,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setofilename (
|
|||||||
|
|
||||||
throw_exception (
|
throw_exception (
|
||||||
env,
|
env,
|
||||||
ASE_T("out of memory"),
|
ase_awk_geterrstr(ASE_AWK_ENOMEM),
|
||||||
ASE_AWK_ENOMEM,
|
ASE_AWK_ENOMEM,
|
||||||
0);
|
0);
|
||||||
return;
|
return;
|
||||||
@ -1616,7 +1628,16 @@ JNIEXPORT jobject JNICALL Java_ase_awk_Awk_strtonum (
|
|||||||
|
|
||||||
len = (*env)->GetStringLength (env, str);
|
len = (*env)->GetStringLength (env, str);
|
||||||
ptr = (*env)->GetStringChars (env, str, JNI_FALSE);
|
ptr = (*env)->GetStringChars (env, str, JNI_FALSE);
|
||||||
if (ptr == NULL) return NULL;
|
if (ptr == NULL)
|
||||||
|
{
|
||||||
|
(*env)->ExceptionClear (env);
|
||||||
|
throw_exception (
|
||||||
|
env,
|
||||||
|
ase_awk_geterrstr(ASE_AWK_ENOMEM),
|
||||||
|
ASE_AWK_ENOMEM,
|
||||||
|
0);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (ASE_SIZEOF(jchar) != ASE_SIZEOF(ase_char_t))
|
if (ASE_SIZEOF(jchar) != ASE_SIZEOF(ase_char_t))
|
||||||
{
|
{
|
||||||
@ -1626,8 +1647,12 @@ JNIEXPORT jobject JNICALL Java_ase_awk_Awk_strtonum (
|
|||||||
if (tmp == ASE_NULL)
|
if (tmp == ASE_NULL)
|
||||||
{
|
{
|
||||||
(*env)->ReleaseStringChars (env, str, ptr);
|
(*env)->ReleaseStringChars (env, str, ptr);
|
||||||
ase_awk_setrunerrnum ((ase_awk_run_t*)runid, ASE_AWK_ENOMEM);
|
throw_exception (
|
||||||
return -1;
|
env,
|
||||||
|
ase_awk_geterrstr(ASE_AWK_ENOMEM),
|
||||||
|
ASE_AWK_ENOMEM,
|
||||||
|
0);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < len; i++) tmp[i] = (ase_char_t)ptr[i];
|
for (i = 0; i < len; i++) tmp[i] = (ase_char_t)ptr[i];
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: Awk.java,v 1.20 2007-01-23 14:23:18 bacon Exp $
|
* $Id: Awk.java,v 1.21 2007-01-24 14:21:30 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ase.test.awk;
|
package ase.test.awk;
|
||||||
@ -26,7 +26,7 @@ public class Awk extends ase.awk.StdAwk
|
|||||||
|
|
||||||
public Object xxx (long runid, Object[] args)
|
public Object xxx (long runid, Object[] args)
|
||||||
{
|
{
|
||||||
System.out.println ("<<BFN_SIN>>");
|
System.out.println ("<<BFN_XXX>>");
|
||||||
for (int i = 0; i < args.length; i++)
|
for (int i = 0; i < args.length; i++)
|
||||||
{
|
{
|
||||||
System.out.print ("ARG #" + i);
|
System.out.print ("ARG #" + i);
|
||||||
|
Loading…
Reference in New Issue
Block a user