*** empty log message ***
This commit is contained in:
		@ -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;
 | 
			
		||||
@ -57,8 +57,9 @@ public abstract class Awk
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* == just in case == */
 | 
			
		||||
	protected void finalize ()
 | 
			
		||||
	protected void finalize () throws Throwable
 | 
			
		||||
	{
 | 
			
		||||
		super.finalize ();
 | 
			
		||||
		if (handle != 0) close ();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -69,7 +70,7 @@ public abstract class Awk
 | 
			
		||||
	public  native void run () throws Exception;
 | 
			
		||||
 | 
			
		||||
	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 (
 | 
			
		||||
		String name, int min_args, int max_args) throws Exception;
 | 
			
		||||
@ -80,7 +81,8 @@ public abstract class Awk
 | 
			
		||||
	private native void setofilename (
 | 
			
		||||
		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);
 | 
			
		||||
 | 
			
		||||
	/* == builtin functions == */
 | 
			
		||||
@ -95,7 +97,8 @@ public abstract class Awk
 | 
			
		||||
		delbfn (name);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	protected long builtinFunctionArgumentToLong (long runid, Object obj)
 | 
			
		||||
	protected long builtinFunctionArgumentToLong (
 | 
			
		||||
		long runid, Object obj) throws Exception
 | 
			
		||||
	{
 | 
			
		||||
		long n;
 | 
			
		||||
 | 
			
		||||
@ -131,7 +134,8 @@ public abstract class Awk
 | 
			
		||||
		return n;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	protected double builtinFunctionArgumentToDouble (long runid, Object obj)
 | 
			
		||||
	protected double builtinFunctionArgumentToDouble (
 | 
			
		||||
		long runid, Object obj) throws Exception
 | 
			
		||||
	{
 | 
			
		||||
		double n;
 | 
			
		||||
 | 
			
		||||
@ -167,7 +171,8 @@ public abstract class Awk
 | 
			
		||||
		return n;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	protected String builtinFunctionArgumentToString (long runid, Object obj)
 | 
			
		||||
	protected String builtinFunctionArgumentToString (
 | 
			
		||||
		long runid, Object obj) throws Exception
 | 
			
		||||
	{
 | 
			
		||||
		String str;
 | 
			
		||||
 | 
			
		||||
@ -179,7 +184,8 @@ public abstract class Awk
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* == 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 
 | 
			
		||||
		 * crash the program if runid is invalid. so this wrapper
 | 
			
		||||
@ -187,7 +193,8 @@ public abstract class Awk
 | 
			
		||||
		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);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -62,8 +62,8 @@ public class Extio
 | 
			
		||||
		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;
 | 
			
		||||
@ -707,44 +707,44 @@ public abstract class StdAwk extends Awk
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* == 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]);
 | 
			
		||||
		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]);
 | 
			
		||||
		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]);
 | 
			
		||||
		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 x = builtinFunctionArgumentToDouble (runid, args[1]);
 | 
			
		||||
		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]);
 | 
			
		||||
		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]);
 | 
			
		||||
		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]);
 | 
			
		||||
		return new Double (Math.sqrt(x));
 | 
			
		||||
@ -755,7 +755,7 @@ public abstract class StdAwk extends Awk
 | 
			
		||||
		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;
 | 
			
		||||
 | 
			
		||||
@ -768,7 +768,7 @@ public abstract class StdAwk extends Awk
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* 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]);
 | 
			
		||||
		Process proc = null;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										139
									
								
								ase/awk/jni.c
									
									
									
									
									
								
							
							
						
						
									
										139
									
								
								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>
 | 
			
		||||
@ -13,7 +13,6 @@
 | 
			
		||||
#include <ase/awk/jni.h>
 | 
			
		||||
#include <ase/awk/awk.h>
 | 
			
		||||
#include <ase/awk/val.h>
 | 
			
		||||
//#include <ase/awk/awk_i.h>
 | 
			
		||||
 | 
			
		||||
#include "../etc/printf.c"
 | 
			
		||||
 | 
			
		||||
@ -204,10 +203,13 @@ static void throw_exception (
 | 
			
		||||
		{
 | 
			
		||||
			(*env)->DeleteLocalRef (env, except_class);
 | 
			
		||||
 | 
			
		||||
			except_class = (*env)->FindClass (env, CLASS_OUTOFMEMORYERROR);
 | 
			
		||||
			except_class = (*env)->FindClass (
 | 
			
		||||
				env, CLASS_OUTOFMEMORYERROR);
 | 
			
		||||
			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);
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
@ -291,11 +293,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_open (JNIEnv* env, jobject obj)
 | 
			
		||||
	(*env)->DeleteLocalRef (env, class);
 | 
			
		||||
	if (handle == NULL) 
 | 
			
		||||
	{
 | 
			
		||||
		throw_exception (
 | 
			
		||||
			env,
 | 
			
		||||
			ASE_T("no handle field found"), 
 | 
			
		||||
			ASE_AWK_EINTERN, 
 | 
			
		||||
			0);
 | 
			
		||||
		/* internal error. no handle field 
 | 
			
		||||
		 * NoSuchFieldError, ExceptionInitializerError, 
 | 
			
		||||
		 * OutOfMemoryError might occur */
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -318,7 +318,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_close (JNIEnv* env, jobject obj)
 | 
			
		||||
	(*env)->DeleteLocalRef (env, class);
 | 
			
		||||
	if (handle == NULL) 
 | 
			
		||||
	{	
 | 
			
		||||
		/* internal error. no handle field */
 | 
			
		||||
		/* internal error. no handle field 
 | 
			
		||||
		 * NoSuchFieldError, ExceptionInitializerError, 
 | 
			
		||||
		 * OutOfMemoryError might occur */
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -345,11 +347,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_parse (JNIEnv* env, jobject obj)
 | 
			
		||||
	(*env)->DeleteLocalRef (env, class);
 | 
			
		||||
	if (handle == NULL) 
 | 
			
		||||
	{
 | 
			
		||||
		throw_exception (
 | 
			
		||||
			env, 
 | 
			
		||||
			ASE_T("no handle field found"), 
 | 
			
		||||
			ASE_AWK_EINTERN, 
 | 
			
		||||
			0); 
 | 
			
		||||
		/* internal error. no handle field 
 | 
			
		||||
		 * NoSuchFieldError, ExceptionInitializerError, 
 | 
			
		||||
		 * OutOfMemoryError might occur */
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -397,11 +397,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_run (JNIEnv* env, jobject obj)
 | 
			
		||||
	(*env)->DeleteLocalRef (env, class);
 | 
			
		||||
	if (handle == 0) 
 | 
			
		||||
	{
 | 
			
		||||
		throw_exception (
 | 
			
		||||
			env, 
 | 
			
		||||
			ASE_T("no handle field found"), 
 | 
			
		||||
			ASE_AWK_EINTERN, 
 | 
			
		||||
			0); 
 | 
			
		||||
		/* internal error. no handle field 
 | 
			
		||||
		 * NoSuchFieldError, ExceptionInitializerError, 
 | 
			
		||||
		 * OutOfMemoryError might occur */
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -627,8 +625,7 @@ static ase_ssize_t __java_write_source (
 | 
			
		||||
	thrown = (*env)->ExceptionOccurred (env);
 | 
			
		||||
	if (thrown)
 | 
			
		||||
	{
 | 
			
		||||
/* TODO: remove the following line */	
 | 
			
		||||
(*env)->ExceptionDescribe (env);
 | 
			
		||||
		if (awk->debug) (*env)->ExceptionDescribe (env);
 | 
			
		||||
		(*env)->ExceptionClear (env);
 | 
			
		||||
		ret = -1;
 | 
			
		||||
	}
 | 
			
		||||
@ -863,7 +860,6 @@ static ase_ssize_t __java_flush_extio (
 | 
			
		||||
{
 | 
			
		||||
	jclass class; 
 | 
			
		||||
	jmethodID mid;
 | 
			
		||||
	jthrowable thrown;
 | 
			
		||||
	jint ret;
 | 
			
		||||
	
 | 
			
		||||
	class = (*env)->GetObjectClass(env, obj);
 | 
			
		||||
@ -875,10 +871,9 @@ static ase_ssize_t __java_flush_extio (
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ret = (*env)->CallIntMethod (env, obj, mid, extio->handle);
 | 
			
		||||
	thrown = (*env)->ExceptionOccurred (env);
 | 
			
		||||
	if (thrown)
 | 
			
		||||
	if ((*env)->ExceptionOccurred (env))
 | 
			
		||||
	{
 | 
			
		||||
(*env)->ExceptionDescribe (env);
 | 
			
		||||
		if (awk->debug) (*env)->ExceptionDescribe (env);
 | 
			
		||||
		(*env)->ExceptionClear (env);
 | 
			
		||||
		ret = -1;
 | 
			
		||||
	}
 | 
			
		||||
@ -891,7 +886,6 @@ static ase_ssize_t __java_next_extio (
 | 
			
		||||
{
 | 
			
		||||
	jclass class; 
 | 
			
		||||
	jmethodID mid;
 | 
			
		||||
	jthrowable thrown;
 | 
			
		||||
	jint ret;
 | 
			
		||||
	
 | 
			
		||||
	class = (*env)->GetObjectClass(env, obj);
 | 
			
		||||
@ -903,10 +897,9 @@ static ase_ssize_t __java_next_extio (
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ret = (*env)->CallIntMethod (env, obj, mid, extio->handle);
 | 
			
		||||
	thrown = (*env)->ExceptionOccurred (env);
 | 
			
		||||
	if (thrown)
 | 
			
		||||
	if ((*env)->ExceptionOccurred (env))
 | 
			
		||||
	{
 | 
			
		||||
(*env)->ExceptionDescribe (env);
 | 
			
		||||
		if (awk->debug) (*env)->ExceptionDescribe (env);
 | 
			
		||||
		(*env)->ExceptionClear (env);
 | 
			
		||||
		ret = -1;
 | 
			
		||||
	}
 | 
			
		||||
@ -1055,9 +1048,7 @@ static int __handle_bfn (
 | 
			
		||||
 | 
			
		||||
	if (name == NULL)
 | 
			
		||||
	{
 | 
			
		||||
		if ((*env)->ExceptionOccurred (env))
 | 
			
		||||
		(*env)->ExceptionClear (env);
 | 
			
		||||
 | 
			
		||||
		ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, msg_nomem);
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
@ -1080,7 +1071,6 @@ static int __handle_bfn (
 | 
			
		||||
	{
 | 
			
		||||
		/* if the method is not found, the exception is thrown.
 | 
			
		||||
		 * so clear it to prevent it from being thrown */
 | 
			
		||||
		if ((*env)->ExceptionOccurred (env))
 | 
			
		||||
		(*env)->ExceptionClear (env);
 | 
			
		||||
		ase_awk_setrunerrnum (run, ASE_AWK_EBFNUSER);
 | 
			
		||||
		return -1;
 | 
			
		||||
@ -1168,6 +1158,8 @@ static int __handle_bfn (
 | 
			
		||||
	ret = (*env)->CallObjectMethod (env, obj, method, (jlong)run, args);
 | 
			
		||||
	if ((*env)->ExceptionOccurred (env))
 | 
			
		||||
	{
 | 
			
		||||
		if (awk->debug) (*env)->ExceptionDescribe (env);
 | 
			
		||||
 | 
			
		||||
		(*env)->ExceptionClear (env);
 | 
			
		||||
		(*env)->DeleteLocalRef (env, args);
 | 
			
		||||
		ase_awk_setrunerrnum (run, ASE_AWK_EBFNIMPL);
 | 
			
		||||
@ -1332,11 +1324,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_addbfn (
 | 
			
		||||
	(*env)->DeleteLocalRef (env, class);
 | 
			
		||||
	if (handle == NULL) 
 | 
			
		||||
	{
 | 
			
		||||
		throw_exception (
 | 
			
		||||
			env, 
 | 
			
		||||
			ASE_T("no handle field found"), 
 | 
			
		||||
			ASE_AWK_EINTERN,
 | 
			
		||||
			0);
 | 
			
		||||
		/* internal error. no handle field 
 | 
			
		||||
		 * NoSuchFieldError, ExceptionInitializerError, 
 | 
			
		||||
		 * OutOfMemoryError might occur */
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -1346,8 +1336,12 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_addbfn (
 | 
			
		||||
	ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
 | 
			
		||||
	if (ptr == NULL)
 | 
			
		||||
	{
 | 
			
		||||
		if ((*env)->ExceptionOccurred (env)) (*env)->ExceptionClear (env);
 | 
			
		||||
		throw_exception (env, ASE_T("out of memory"), ASE_AWK_ENOMEM, 0);
 | 
			
		||||
		(*env)->ExceptionClear (env);
 | 
			
		||||
		throw_exception (
 | 
			
		||||
			env, 
 | 
			
		||||
			ase_awk_geterrstr(ASE_AWK_ENOMEM),
 | 
			
		||||
			ASE_AWK_ENOMEM, 
 | 
			
		||||
			0);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -1359,7 +1353,11 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_addbfn (
 | 
			
		||||
		if (tmp == ASE_NULL)
 | 
			
		||||
		{
 | 
			
		||||
			(*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;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@ -1403,11 +1401,9 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_delbfn (
 | 
			
		||||
	(*env)->DeleteLocalRef (env, class);
 | 
			
		||||
	if (handle == NULL) 
 | 
			
		||||
	{
 | 
			
		||||
		throw_exception (
 | 
			
		||||
			env, 
 | 
			
		||||
			ASE_T("no handle field found"), 
 | 
			
		||||
			ASE_AWK_EINTERN,
 | 
			
		||||
			0);
 | 
			
		||||
		/* internal error. no handle field 
 | 
			
		||||
		 * NoSuchFieldError, ExceptionInitializerError, 
 | 
			
		||||
		 * OutOfMemoryError might occur */
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -1417,8 +1413,12 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_delbfn (
 | 
			
		||||
	ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
 | 
			
		||||
	if (ptr == NULL)
 | 
			
		||||
	{
 | 
			
		||||
		if ((*env)->ExceptionOccurred (env)) (*env)->ExceptionClear (env);
 | 
			
		||||
		throw_exception (env, ASE_T("out of memory"), ASE_AWK_ENOMEM, 0);
 | 
			
		||||
		(*env)->ExceptionClear (env);
 | 
			
		||||
		throw_exception (
 | 
			
		||||
			env, 
 | 
			
		||||
			ase_awk_geterrstr(ASE_AWK_ENOMEM),
 | 
			
		||||
			ASE_AWK_ENOMEM,
 | 
			
		||||
			0);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -1430,7 +1430,11 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_delbfn (
 | 
			
		||||
		if (tmp == ASE_NULL)
 | 
			
		||||
		{
 | 
			
		||||
			(*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;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@ -1481,7 +1485,13 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setmaxdepth (
 | 
			
		||||
	class = (*env)->GetObjectClass(env, obj);
 | 
			
		||||
	handle = (*env)->GetFieldID (env, class, FIELD_HANDLE, "J");
 | 
			
		||||
	(*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);
 | 
			
		||||
	ase_awk_setmaxdepth (awk, ids, depth);
 | 
			
		||||
@ -1499,9 +1509,10 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setfilename (
 | 
			
		||||
	ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
 | 
			
		||||
	if (ptr == NULL) 
 | 
			
		||||
	{
 | 
			
		||||
		(*env)->ExceptionClear (env);
 | 
			
		||||
		throw_exception (
 | 
			
		||||
			env, 
 | 
			
		||||
			ASE_T("out of memory"), 
 | 
			
		||||
			ase_awk_geterrstr(ASE_AWK_ENOMEM),
 | 
			
		||||
			ASE_AWK_ENOMEM,
 | 
			
		||||
			0);
 | 
			
		||||
		return;
 | 
			
		||||
@ -1518,7 +1529,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setfilename (
 | 
			
		||||
 | 
			
		||||
			throw_exception (
 | 
			
		||||
				env, 
 | 
			
		||||
				ASE_T("out of memory"), 
 | 
			
		||||
				ase_awk_geterrstr(ASE_AWK_ENOMEM),
 | 
			
		||||
				ASE_AWK_ENOMEM, 
 | 
			
		||||
				0);
 | 
			
		||||
			return;
 | 
			
		||||
@ -1557,9 +1568,10 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setofilename (
 | 
			
		||||
	ptr = (*env)->GetStringChars (env, name, JNI_FALSE);
 | 
			
		||||
	if (ptr == NULL)
 | 
			
		||||
	{
 | 
			
		||||
		(*env)->ExceptionClear (env);
 | 
			
		||||
		throw_exception (
 | 
			
		||||
			env, 
 | 
			
		||||
			ASE_T("out of memory"), 
 | 
			
		||||
			ase_awk_geterrstr(ASE_AWK_ENOMEM),
 | 
			
		||||
			ASE_AWK_ENOMEM, 
 | 
			
		||||
			0);
 | 
			
		||||
		return;
 | 
			
		||||
@ -1576,7 +1588,7 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_setofilename (
 | 
			
		||||
 | 
			
		||||
			throw_exception (
 | 
			
		||||
				env, 
 | 
			
		||||
				ASE_T("out of memory"), 
 | 
			
		||||
				ase_awk_geterrstr(ASE_AWK_ENOMEM),
 | 
			
		||||
				ASE_AWK_ENOMEM, 
 | 
			
		||||
				0);
 | 
			
		||||
			return;
 | 
			
		||||
@ -1616,7 +1628,16 @@ JNIEXPORT jobject JNICALL Java_ase_awk_Awk_strtonum (
 | 
			
		||||
 | 
			
		||||
	len = (*env)->GetStringLength (env, str);
 | 
			
		||||
	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))
 | 
			
		||||
	{
 | 
			
		||||
@ -1626,8 +1647,12 @@ JNIEXPORT jobject JNICALL Java_ase_awk_Awk_strtonum (
 | 
			
		||||
		if (tmp == ASE_NULL)
 | 
			
		||||
		{
 | 
			
		||||
			(*env)->ReleaseStringChars (env, str, ptr);
 | 
			
		||||
			ase_awk_setrunerrnum ((ase_awk_run_t*)runid, ASE_AWK_ENOMEM);
 | 
			
		||||
			return -1;
 | 
			
		||||
			throw_exception (
 | 
			
		||||
				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];
 | 
			
		||||
 | 
			
		||||
@ -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;
 | 
			
		||||
@ -26,7 +26,7 @@ public class Awk extends ase.awk.StdAwk
 | 
			
		||||
 | 
			
		||||
	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++)
 | 
			
		||||
		{
 | 
			
		||||
			System.out.print ("ARG #" + i);
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user