mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-28 10:19:23 +00:00 
			
		
		
		
	Java API: removed platform-dependency of Native.cpp
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
This commit is contained in:
		
							parent
							
								
									0c1f2a8281
								
							
						
					
					
						commit
						3544379f53
					
				
					 1 changed files with 18 additions and 17 deletions
				
			
		|  | @ -560,23 +560,24 @@ def mk_java(): | ||||||
|     java_wrapper.write('#ifdef __cplusplus\n') |     java_wrapper.write('#ifdef __cplusplus\n') | ||||||
|     java_wrapper.write('extern "C" {\n') |     java_wrapper.write('extern "C" {\n') | ||||||
|     java_wrapper.write('#endif\n\n') |     java_wrapper.write('#endif\n\n') | ||||||
|     if VS_X64:         |     java_wrapper.write('#ifdef _M_X64\n\n') | ||||||
|         java_wrapper.write('#define GETLONGAELEMS(T,OLD,NEW)                                   \\\n') |     java_wrapper.write('#define GETLONGAELEMS(T,OLD,NEW)                                   \\\n') | ||||||
|         java_wrapper.write('  T * NEW = (T*) jenv->GetLongArrayElements(OLD, NULL);              \n') |     java_wrapper.write('  T * NEW = (T*) jenv->GetLongArrayElements(OLD, NULL);              \n') | ||||||
|         java_wrapper.write('#define RELEASELONGAELEMS(OLD,NEW)                                 \\\n') |     java_wrapper.write('#define RELEASELONGAELEMS(OLD,NEW)                                 \\\n') | ||||||
|         java_wrapper.write('  jenv->ReleaseLongArrayElements(OLD, (jlong *) NEW, JNI_ABORT);     \n\n') |     java_wrapper.write('  jenv->ReleaseLongArrayElements(OLD, (jlong *) NEW, JNI_ABORT);     \n\n') | ||||||
|     else: |     java_wrapper.write('#else\n') | ||||||
|         java_wrapper.write('#define GETLONGAELEMS(T,OLD,NEW)                                   \\\n') |     java_wrapper.write('#define GETLONGAELEMS(T,OLD,NEW)                                   \\\n') | ||||||
|         java_wrapper.write('  T * NEW = 0; {                                                   \\\n') |     java_wrapper.write('  T * NEW = 0; {                                                   \\\n') | ||||||
|         java_wrapper.write('  jlong * temp = jenv->GetLongArrayElements(OLD, NULL);            \\\n') |     java_wrapper.write('  jlong * temp = jenv->GetLongArrayElements(OLD, NULL);            \\\n') | ||||||
|         java_wrapper.write('  unsigned int size = jenv->GetArrayLength(OLD);                   \\\n') |     java_wrapper.write('  unsigned int size = jenv->GetArrayLength(OLD);                   \\\n') | ||||||
|         java_wrapper.write('  NEW = (T*) (new int[size]);                                      \\\n') |     java_wrapper.write('  NEW = (T*) (new int[size]);                                      \\\n') | ||||||
|         java_wrapper.write('  for (unsigned i=0; i < size; i++)                                \\\n') |     java_wrapper.write('  for (unsigned i=0; i < size; i++)                                \\\n') | ||||||
|         java_wrapper.write('    NEW[i] = reinterpret_cast<T>(temp[i]);                         \\\n') |     java_wrapper.write('    NEW[i] = reinterpret_cast<T>(temp[i]);                         \\\n') | ||||||
|         java_wrapper.write('  jenv->ReleaseLongArrayElements(OLD, temp, JNI_ABORT);            \\\n') |     java_wrapper.write('  jenv->ReleaseLongArrayElements(OLD, temp, JNI_ABORT);            \\\n') | ||||||
|         java_wrapper.write('  }                                                                  \n\n') |     java_wrapper.write('  }                                                                  \n\n') | ||||||
|         java_wrapper.write('#define RELEASELONGAELEMS(OLD,NEW)                                 \\\n') |     java_wrapper.write('#define RELEASELONGAELEMS(OLD,NEW)                                 \\\n') | ||||||
|         java_wrapper.write('  delete [] NEW;                                                     \n\n') |     java_wrapper.write('  delete [] NEW;                                                     \n\n') | ||||||
|  |     java_wrapper.write('#endif\n') | ||||||
|     pkg_str = get_component('java').package_name.replace('.', '_') |     pkg_str = get_component('java').package_name.replace('.', '_') | ||||||
|     for name, result, params in _dotnet_decls: |     for name, result, params in _dotnet_decls: | ||||||
|         java_wrapper.write('JNIEXPORT %s JNICALL Java_%s_Native_INTERNAL%s(JNIEnv * jenv, jclass cls' % (type2javaw(result), pkg_str, java_method_name(name))) |         java_wrapper.write('JNIEXPORT %s JNICALL Java_%s_Native_INTERNAL%s(JNIEnv * jenv, jclass cls' % (type2javaw(result), pkg_str, java_method_name(name))) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue