Commit 091d3469 authored by Brad King's avatar Brad King
Browse files

ENH: Added long long and __int64 type support to Tcl/Java/Python wrappers.

parent 14ba7f03
......@@ -158,18 +158,11 @@ IF(VTK_TYPE_USE_LONG_LONG)
vtkLongLongArray.cxx
vtkUnsignedLongLongArray.cxx
)
SET_SOURCE_FILES_PROPERTIES(
vtkLongLongArray.cxx
vtkUnsignedLongLongArray.cxx
WRAP_EXCLUDE
)
ENDIF(VTK_TYPE_USE_LONG_LONG)
IF(VTK_TYPE_USE___INT64)
SET(Kit_SRCS ${Kit_SRCS} vtk__Int64Array.cxx)
SET_SOURCE_FILES_PROPERTIES(vtk__Int64Array.cxx WRAP_EXCLUDE)
IF(VTK_TYPE_CONVERT_UI64_TO_DOUBLE)
SET(Kit_SRCS ${Kit_SRCS} vtkUnsigned__Int64Array.cxx)
SET_SOURCE_FILES_PROPERTIES(vtkUnsigned__Int64Array.cxx WRAP_EXCLUDE)
ENDIF(VTK_TYPE_CONVERT_UI64_TO_DOUBLE)
ENDIF(VTK_TYPE_USE___INT64)
......
......@@ -524,6 +524,60 @@ JNIEXPORT jarray vtkJavaMakeJArrayOfIntFromIdType(JNIEnv *env, vtkIdType *ptr, i
return ret;
}
#if defined(VTK_TYPE_USE_LONG_LONG)
JNIEXPORT jarray vtkJavaMakeJArrayOfIntFromLongLong(JNIEnv *env, long long *ptr, int size)
{
jintArray ret;
int i;
jint *array;
ret = env->NewIntArray(size);
if (ret == 0)
{
// should throw an exception here
return 0;
}
array = env->GetIntArrayElements(ret,NULL);
// copy the data
for (i = 0; i < size; i++)
{
array[i] = (int)ptr[i];
}
env->ReleaseIntArrayElements(ret,array,0);
return ret;
}
#endif
#if defined(VTK_TYPE_USE___INT64)
JNIEXPORT jarray vtkJavaMakeJArrayOfIntFrom__Int64(JNIEnv *env, __int64 *ptr, int size)
{
jintArray ret;
int i;
jint *array;
ret = env->NewIntArray(size);
if (ret == 0)
{
// should throw an exception here
return 0;
}
array = env->GetIntArrayElements(ret,NULL);
// copy the data
for (i = 0; i < size; i++)
{
array[i] = (int)ptr[i];
}
env->ReleaseIntArrayElements(ret,array,0);
return ret;
}
#endif
JNIEXPORT jarray vtkJavaMakeJArrayOfFloatFromFloat(JNIEnv *env, float *ptr, int size)
{
jfloatArray ret;
......
......@@ -42,6 +42,12 @@ extern JNIEXPORT jarray vtkJavaMakeJArrayOfDoubleFromDouble(JNIEnv *env,
extern JNIEXPORT jarray vtkJavaMakeJArrayOfShortFromShort(JNIEnv *env, short *arr, int size);
extern JNIEXPORT jarray vtkJavaMakeJArrayOfIntFromInt(JNIEnv *env, int *arr, int size);
extern JNIEXPORT jarray vtkJavaMakeJArrayOfIntFromIdType(JNIEnv *env, vtkIdType *arr, int size);
#if defined(VTK_TYPE_USE_LONG_LONG)
extern JNIEXPORT jarray vtkJavaMakeJArrayOfIntFromLongLong(JNIEnv *env, long long *arr, int size);
#endif
#if defined(VTK_TYPE_USE___INT64)
extern JNIEXPORT jarray vtkJavaMakeJArrayOfIntFrom__Int64(JNIEnv *env, __int64 *arr, int size);
#endif
extern JNIEXPORT jarray vtkJavaMakeJArrayOfLongFromLong(JNIEnv *env, long *arr, int size);
extern JNIEXPORT jarray vtkJavaMakeJArrayOfByteFromUnsignedChar(JNIEnv *env, unsigned char *arr, int size);
extern JNIEXPORT jarray vtkJavaMakeJArrayOfByteFromChar(JNIEnv *env, char *arr, int size);
......
......@@ -18,7 +18,7 @@ IF(VTK_BINARY_DIR)
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project VTKLOCAL
--build-run-dir "${EXECUTABLE_OUTPUT_PATH}"
--build-run-dir "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}"
--build-options -DVTK_DIR:PATH=${VTK_BINARY_DIR}
--test-command
"${VTK_BINARY_DIR}/Examples/Build/vtkLocal/bin/vtkLocalTest"
......@@ -31,7 +31,7 @@ IF(VTK_BINARY_DIR)
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project VTKMY
--build-run-dir "${EXECUTABLE_OUTPUT_PATH}"
--build-run-dir "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}"
--build-options -DVTK_DIR:PATH=${VTK_BINARY_DIR}
--test-command
"${VTK_BINARY_DIR}/Examples/Build/vtkMy/bin/vtkmyEx1"
......
This diff is collapsed.
......@@ -157,6 +157,12 @@ Modify lex.yy.c:
"int"[\t\n\r ]*"short" return(SHORT);
"int"[\t\n\r ]*"long" return(LONG);
"long"[\t\n\r ]*"long" return(LONG_LONG);
"int"[\t\n\r ]*"long"[\t\n\r ]*"long" return(LONG_LONG);
"long"[\t\n\r ]*"long"[\t\n\r ]*"int" return(LONG_LONG);
"__int64" return(INT64__);
"class" return(CLASS);
"public" return(PUBLIC);
"private" return(PRIVATE);
......
This diff is collapsed.
......@@ -158,6 +158,8 @@ char *vtkstrdup(const char *in)
%token FLOAT
%token SHORT
%token LONG
%token LONG_LONG
%token INT64__
%token DOUBLE
%token VOID
%token CHAR
......@@ -425,7 +427,9 @@ type_primitive:
currentFunction->ReturnClass = vtkstrdup($1);
}
} |
IdType { postSig("vtkIdType "); $<integer>$ = 0xA;};
IdType { postSig("vtkIdType "); $<integer>$ = 0xA;} |
LONG_LONG { postSig("long long "); $<integer>$ = 0xB;} |
INT64__ { postSig("__int64 "); $<integer>$ = 0xC;};
optional_scope: | ':' scope_list;
......@@ -1083,7 +1087,7 @@ void output_function()
{
switch (currentFunction->ReturnType % 0x1000)
{
case 0x301: case 0x302: case 0x307: case 0x30A:
case 0x301: case 0x302: case 0x307: case 0x30A: case 0x30B: case 0x30C:
case 0x304: case 0x305: case 0x306: case 0x313:
look_for_hint();
break;
......
......@@ -51,6 +51,8 @@ void output_temp(FILE *fp,int i)
case 0x5: fprintf(fp,"int "); break;
case 0x6: fprintf(fp,"int "); break;
case 0xA: fprintf(fp,"int "); break;
case 0xB: fprintf(fp,"int "); break;
case 0xC: fprintf(fp,"int "); break;
case 0x2: fprintf(fp,"void "); break;
case 0x3: fprintf(fp,"char "); break;
case 0x9: fprintf(fp,"%s ",currentFunction->ArgClasses[i]); break;
......@@ -75,7 +77,8 @@ void return_result(FILE *fp)
case 0x2: fprintf(fp,"void "); break;
case 0x3: fprintf(fp,"char "); break;
case 0x7: fprintf(fp,"double "); break;
case 0x4: case 0x5: case 0x6: case 0xA: case 0x13: case 0x14: case 0x15: case 0x16: case 0x1A:
case 0x4: case 0x5: case 0x6: case 0xA: case 0xB: case 0xC:
case 0x13: case 0x14: case 0x15: case 0x16: case 0x1A: case 0x1B: case 0x1C:
fprintf(fp,"int ");
break;
case 0x303: fprintf(fp,"String "); break;
......@@ -92,7 +95,8 @@ void return_result(FILE *fp)
case 0x313:
fprintf(fp,"byte[] ");
break;
case 0x304: case 0x305: case 0x306: case 0x30A: case 0x314: case 0x315: case 0x316: case 0x31A:
case 0x304: case 0x305: case 0x306: case 0x30A: case 0x30B: case 0x30C:
case 0x314: case 0x315: case 0x316: case 0x31A: case 0x31B: case 0x31C:
fprintf(fp,"int[] "); break;
}
}
......@@ -134,6 +138,22 @@ int DoneOne()
(currentFunction->ArgTypes[j] % 0x1000 == 0x306)) ||
((fi->ArgTypes[j] % 0x1000 == 0x306)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30A)) ||
((fi->ArgTypes[j] % 0x1000 == 0x304)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30B)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30B)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x304)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30B)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x306)) ||
((fi->ArgTypes[j] % 0x1000 == 0x306)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30B)) ||
((fi->ArgTypes[j] % 0x1000 == 0x304)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30C)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30C)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x304)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30C)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x306)) ||
((fi->ArgTypes[j] % 0x1000 == 0x306)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30C)) ||
((fi->ArgTypes[j] % 0x1000 == 0x1)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x7)) ||
((fi->ArgTypes[j] % 0x1000 == 0x7)&&
......@@ -149,7 +169,23 @@ int DoneOne()
((fi->ArgTypes[j] % 0x1000 == 0xA)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x6)) ||
((fi->ArgTypes[j] % 0x1000 == 0x6)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xA))))
(currentFunction->ArgTypes[j] % 0x1000 == 0xA)) ||
((fi->ArgTypes[j] % 0x1000 == 0x4)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xB)) ||
((fi->ArgTypes[j] % 0x1000 == 0xB)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x4)) ||
((fi->ArgTypes[j] % 0x1000 == 0xB)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x6)) ||
((fi->ArgTypes[j] % 0x1000 == 0x6)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xB)) ||
((fi->ArgTypes[j] % 0x1000 == 0x4)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xC)) ||
((fi->ArgTypes[j] % 0x1000 == 0xC)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x4)) ||
((fi->ArgTypes[j] % 0x1000 == 0xC)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x6)) ||
((fi->ArgTypes[j] % 0x1000 == 0x6)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xC))))
{
match = 0;
}
......@@ -185,6 +221,22 @@ int DoneOne()
(currentFunction->ReturnType % 0x1000 == 0x30A)) ||
((fi->ReturnType % 0x1000 == 0x30A)&&
(currentFunction->ReturnType % 0x1000 == 0x304)) ||
((fi->ReturnType % 0x1000 == 0x30B)&&
(currentFunction->ReturnType % 0x1000 == 0x306)) ||
((fi->ReturnType % 0x1000 == 0x306)&&
(currentFunction->ReturnType % 0x1000 == 0x30B)) ||
((fi->ReturnType % 0x1000 == 0x304)&&
(currentFunction->ReturnType % 0x1000 == 0x30B)) ||
((fi->ReturnType % 0x1000 == 0x30B)&&
(currentFunction->ReturnType % 0x1000 == 0x304)) ||
((fi->ReturnType % 0x1000 == 0x30C)&&
(currentFunction->ReturnType % 0x1000 == 0x306)) ||
((fi->ReturnType % 0x1000 == 0x306)&&
(currentFunction->ReturnType % 0x1000 == 0x30C)) ||
((fi->ReturnType % 0x1000 == 0x304)&&
(currentFunction->ReturnType % 0x1000 == 0x30C)) ||
((fi->ReturnType % 0x1000 == 0x30C)&&
(currentFunction->ReturnType % 0x1000 == 0x304)) ||
((fi->ReturnType % 0x1000 == 0x1)&&
(currentFunction->ReturnType % 0x1000 == 0x7)) ||
((fi->ReturnType % 0x1000 == 0x7)&&
......@@ -200,7 +252,23 @@ int DoneOne()
((fi->ReturnType % 0x1000 == 0xA)&&
(currentFunction->ReturnType % 0x1000 == 0x6)) ||
((fi->ReturnType % 0x1000 == 0x6)&&
(currentFunction->ReturnType % 0x1000 == 0xA))))
(currentFunction->ReturnType % 0x1000 == 0xA)) ||
((fi->ReturnType % 0x1000 == 0x4)&&
(currentFunction->ReturnType % 0x1000 == 0xB)) ||
((fi->ReturnType % 0x1000 == 0xB)&&
(currentFunction->ReturnType % 0x1000 == 0x4)) ||
((fi->ReturnType % 0x1000 == 0xB)&&
(currentFunction->ReturnType % 0x1000 == 0x6)) ||
((fi->ReturnType % 0x1000 == 0x6)&&
(currentFunction->ReturnType % 0x1000 == 0xB)) ||
((fi->ReturnType % 0x1000 == 0x4)&&
(currentFunction->ReturnType % 0x1000 == 0xC)) ||
((fi->ReturnType % 0x1000 == 0xC)&&
(currentFunction->ReturnType % 0x1000 == 0x4)) ||
((fi->ReturnType % 0x1000 == 0xC)&&
(currentFunction->ReturnType % 0x1000 == 0x6)) ||
((fi->ReturnType % 0x1000 == 0x6)&&
(currentFunction->ReturnType % 0x1000 == 0xC))))
{
match = 0;
}
......@@ -332,6 +400,8 @@ void outputFunction(FILE *fp, FileInfo *data)
if (currentFunction->ArgTypes[i] % 0x1000 == 0x315) args_ok = 0;
if (currentFunction->ArgTypes[i] % 0x1000 == 0x316) args_ok = 0;
if (currentFunction->ArgTypes[i] % 0x1000 == 0x31A) args_ok = 0;
if (currentFunction->ArgTypes[i] % 0x1000 == 0x31B) args_ok = 0;
if (currentFunction->ArgTypes[i] % 0x1000 == 0x31C) args_ok = 0;
}
if ((currentFunction->ReturnType % 0x10) == 0x8) args_ok = 0;
if (currentFunction->ReturnType % 0x1000 == 0x9) args_ok = 0;
......@@ -345,6 +415,8 @@ void outputFunction(FILE *fp, FileInfo *data)
if (currentFunction->ReturnType % 0x1000 == 0x315) args_ok = 0;
if (currentFunction->ReturnType % 0x1000 == 0x316) args_ok = 0;
if (currentFunction->ReturnType % 0x1000 == 0x31A) args_ok = 0;
if (currentFunction->ReturnType % 0x1000 == 0x31B) args_ok = 0;
if (currentFunction->ReturnType % 0x1000 == 0x31C) args_ok = 0;
if (currentFunction->NumberOfArguments &&
(currentFunction->ArgTypes[0] == 0x5000)
......@@ -363,7 +435,9 @@ void outputFunction(FILE *fp, FileInfo *data)
switch (currentFunction->ReturnType % 0x1000)
{
case 0x301: case 0x302: case 0x307:
case 0x304: case 0x305: case 0x306: case 0x30A: case 0x313:
case 0x304: case 0x305: case 0x306:
case 0x30A: case 0x30B: case 0x30C:
case 0x313:
args_ok = currentFunction->HaveHint;
break;
}
......
......@@ -50,6 +50,8 @@ void output_temp(FILE *fp,int i)
case 0x5: fprintf(fp,"int "); break;
case 0x6: fprintf(fp,"int "); break;
case 0xA: fprintf(fp,"int "); break;
case 0xB: fprintf(fp,"int "); break;
case 0xC: fprintf(fp,"int "); break;
case 0x2: fprintf(fp,"void "); break;
case 0x3: fprintf(fp,"char "); break;
case 0x9: fprintf(fp,"%s ",currentFunction->ArgClasses[i]); break;
......@@ -74,7 +76,8 @@ void return_result(FILE *fp)
case 0x2: fprintf(fp,"void "); break;
case 0x3: fprintf(fp,"char "); break;
case 0x7: fprintf(fp,"double "); break;
case 0x4: case 0x5: case 0x6: case 0xA: case 0x13: case 0x14: case 0x15: case 0x16: case 0x1A:
case 0x4: case 0x5: case 0x6: case 0xA: case 0xB: case 0xC:
case 0x13: case 0x14: case 0x15: case 0x16: case 0x1A: case 0x1B: case 0x1C:
fprintf(fp,"int ");
break;
case 0x303: fprintf(fp,"String "); break;
......@@ -88,7 +91,8 @@ void return_result(FILE *fp)
case 0x301: case 0x307:
fprintf(fp,"double[] ");
break;
case 0x304: case 0x305: case 0x306: case 0x30A: case 0x313: case 0x314: case 0x315: case 0x316: case 0x31A:
case 0x304: case 0x305: case 0x306: case 0x30A: case 0x30B: case 0x30C:
case 0x313: case 0x314: case 0x315: case 0x316: case 0x31A: case 0x31B: case 0x31C:
fprintf(fp,"int[] "); break;
}
}
......@@ -130,6 +134,22 @@ int DoneOne()
(currentFunction->ArgTypes[j] % 0x1000 == 0x306)) ||
((fi->ArgTypes[j] % 0x1000 == 0x306)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30A)) ||
((fi->ArgTypes[j] % 0x1000 == 0x304)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30B)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30B)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x304)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30B)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x306)) ||
((fi->ArgTypes[j] % 0x1000 == 0x306)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30B)) ||
((fi->ArgTypes[j] % 0x1000 == 0x304)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30C)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30C)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x304)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30C)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x306)) ||
((fi->ArgTypes[j] % 0x1000 == 0x306)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30C)) ||
((fi->ArgTypes[j] % 0x1000 == 0x1)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x7)) ||
((fi->ArgTypes[j] % 0x1000 == 0x7)&&
......@@ -145,7 +165,23 @@ int DoneOne()
((fi->ArgTypes[j] % 0x1000 == 0xA)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x6)) ||
((fi->ArgTypes[j] % 0x1000 == 0x6)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xA))))
(currentFunction->ArgTypes[j] % 0x1000 == 0xA)) ||
((fi->ArgTypes[j] % 0x1000 == 0x4)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xB)) ||
((fi->ArgTypes[j] % 0x1000 == 0xB)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x4)) ||
((fi->ArgTypes[j] % 0x1000 == 0xB)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x6)) ||
((fi->ArgTypes[j] % 0x1000 == 0x6)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xB)) ||
((fi->ArgTypes[j] % 0x1000 == 0x4)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xC)) ||
((fi->ArgTypes[j] % 0x1000 == 0xC)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x4)) ||
((fi->ArgTypes[j] % 0x1000 == 0xC)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x6)) ||
((fi->ArgTypes[j] % 0x1000 == 0x6)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xC))))
{
match = 0;
}
......@@ -181,6 +217,22 @@ int DoneOne()
(currentFunction->ReturnType % 0x1000 == 0x30A)) ||
((fi->ReturnType % 0x1000 == 0x30A)&&
(currentFunction->ReturnType % 0x1000 == 0x304)) ||
((fi->ReturnType % 0x1000 == 0x30B)&&
(currentFunction->ReturnType % 0x1000 == 0x306)) ||
((fi->ReturnType % 0x1000 == 0x306)&&
(currentFunction->ReturnType % 0x1000 == 0x30B)) ||
((fi->ReturnType % 0x1000 == 0x304)&&
(currentFunction->ReturnType % 0x1000 == 0x30B)) ||
((fi->ReturnType % 0x1000 == 0x30B)&&
(currentFunction->ReturnType % 0x1000 == 0x304)) ||
((fi->ReturnType % 0x1000 == 0x30C)&&
(currentFunction->ReturnType % 0x1000 == 0x306)) ||
((fi->ReturnType % 0x1000 == 0x306)&&
(currentFunction->ReturnType % 0x1000 == 0x30C)) ||
((fi->ReturnType % 0x1000 == 0x304)&&
(currentFunction->ReturnType % 0x1000 == 0x30C)) ||
((fi->ReturnType % 0x1000 == 0x30C)&&
(currentFunction->ReturnType % 0x1000 == 0x304)) ||
((fi->ReturnType % 0x1000 == 0x1)&&
(currentFunction->ReturnType % 0x1000 == 0x7)) ||
((fi->ReturnType % 0x1000 == 0x7)&&
......@@ -196,7 +248,23 @@ int DoneOne()
((fi->ReturnType % 0x1000 == 0xA)&&
(currentFunction->ReturnType % 0x1000 == 0x6)) ||
((fi->ReturnType % 0x1000 == 0x6)&&
(currentFunction->ReturnType % 0x1000 == 0xA))))
(currentFunction->ReturnType % 0x1000 == 0xA)) ||
((fi->ReturnType % 0x1000 == 0x4)&&
(currentFunction->ReturnType % 0x1000 == 0xB)) ||
((fi->ReturnType % 0x1000 == 0xB)&&
(currentFunction->ReturnType % 0x1000 == 0x4)) ||
((fi->ReturnType % 0x1000 == 0xB)&&
(currentFunction->ReturnType % 0x1000 == 0x6)) ||
((fi->ReturnType % 0x1000 == 0x6)&&
(currentFunction->ReturnType % 0x1000 == 0xB)) ||
((fi->ReturnType % 0x1000 == 0x4)&&
(currentFunction->ReturnType % 0x1000 == 0xC)) ||
((fi->ReturnType % 0x1000 == 0xC)&&
(currentFunction->ReturnType % 0x1000 == 0x4)) ||
((fi->ReturnType % 0x1000 == 0xC)&&
(currentFunction->ReturnType % 0x1000 == 0x6)) ||
((fi->ReturnType % 0x1000 == 0x6)&&
(currentFunction->ReturnType % 0x1000 == 0xC))))
{
match = 0;
}
......@@ -250,6 +318,8 @@ void outputFunction(FILE *fp, FileInfo *data)
if (currentFunction->ArgTypes[i] % 0x1000 == 0x315) args_ok = 0;
if (currentFunction->ArgTypes[i] % 0x1000 == 0x316) args_ok = 0;
if (currentFunction->ArgTypes[i] % 0x1000 == 0x31A) args_ok = 0;
if (currentFunction->ArgTypes[i] % 0x1000 == 0x31B) args_ok = 0;
if (currentFunction->ArgTypes[i] % 0x1000 == 0x31C) args_ok = 0;
}
if ((currentFunction->ReturnType % 0x10) == 0x8) args_ok = 0;
if (currentFunction->ReturnType % 0x1000 == 0x9) args_ok = 0;
......@@ -264,6 +334,8 @@ void outputFunction(FILE *fp, FileInfo *data)
if (currentFunction->ReturnType % 0x1000 == 0x315) args_ok = 0;
if (currentFunction->ReturnType % 0x1000 == 0x316) args_ok = 0;
if (currentFunction->ReturnType % 0x1000 == 0x31A) args_ok = 0;
if (currentFunction->ReturnType % 0x1000 == 0x31B) args_ok = 0;
if (currentFunction->ReturnType % 0x1000 == 0x31C) args_ok = 0;
if (currentFunction->NumberOfArguments &&
(currentFunction->ArgTypes[0] == 0x5000)
......@@ -282,7 +354,8 @@ void outputFunction(FILE *fp, FileInfo *data)
switch (currentFunction->ReturnType % 0x1000)
{
case 0x301: case 0x302: case 0x307:
case 0x304: case 0x305: case 0x306: case 0x30A:
case 0x304: case 0x305: case 0x306:
case 0x30A: case 0x30B: case 0x30C:
args_ok = currentFunction->HaveHint;
break;
}
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment