#include "java_array.h" #include "java_string.h" #include "native-stubs.h" #include "titanium.h" #include "T11NativeUtils4lang2ti.h" #include "layout!TAPT6String4lang4java.h" #include "layout!TAjbyte.h" char * globalJstringToCstring( GP_JString string ) { const LTAjbyte bytes = m8getBytesPT6String4lang4javamT11NativeUtils4lang2ti( string ); const int length = bytes->header.length; char * const result = ti_malloc( length + 1 ); memcpy( result, &bytes->data, length ); result[ length ] = 0; return result; } char * localJstringToCstring( LP_JString localString ) { GP_JString string; globalize( string, localString ); return globalJstringToCstring( string ); } LP_JString java_string_build_16( int length, jchar literal[] ) { LP_JString result; LTAjchar array; JAVA_ARRAY_BUILD( array, length, literal, 1, 1 ); result = m11buildStringLTAjcharmT11NativeUtils4lang2ti( array ); return result; } LP_JString java_string_build_8( char literal[] ) { const int length = strlen( literal ); LP_JString result; LTAjbyte array; JAVA_ARRAY_BUILD( array, length, (jbyte *) literal, 1, 1 ); result = m11buildStringLTAjbytemT11NativeUtils4lang2ti( array ); return result; } PTAPT6String4lang4java java_strings_build( int argc, char *argv[] ) { TAPT6String4lang4java *strings; JAVA_ARRAY_ALLOC( strings, NULL, argc, GP_JString, 0, 1 ); while (argc--) { LP_JString newbie = java_string_build_8( argv[ argc ] ); globalize( strings->data[argc], newbie ); } { PTAPT6String4lang4java result; globalize( result, strings ); return result; } }