Merge pull request #11564 from jamessan/libcall

libcallnr: Use int, not int64_t, as the return type for Vim compat
This commit is contained in:
James McCoy 2019-12-16 07:32:58 -05:00 committed by GitHub
commit 473aea92cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 8 deletions

View File

@ -12961,7 +12961,7 @@ static void libcall_common(typval_T *argvars, typval_T *rettv, int out_type)
const char *libname = (char *) argvars[0].vval.v_string;
const char *funcname = (char *) argvars[1].vval.v_string;
int in_type = argvars[2].v_type;
VarType in_type = argvars[2].v_type;
// input variables
char *str_in = (in_type == VAR_STRING)
@ -12970,8 +12970,8 @@ static void libcall_common(typval_T *argvars, typval_T *rettv, int out_type)
// output variables
char **str_out = (out_type == VAR_STRING)
? (char **) &rettv->vval.v_string : NULL;
int64_t int_out = 0;
? (char **)&rettv->vval.v_string : NULL;
int int_out = 0;
bool success = os_libcall(libname, funcname,
str_in, int_in,
@ -12983,7 +12983,7 @@ static void libcall_common(typval_T *argvars, typval_T *rettv, int out_type)
}
if (out_type == VAR_NUMBER) {
rettv->vval.v_number = (int) int_out;
rettv->vval.v_number = (varnumber_T)int_out;
}
}

View File

@ -19,15 +19,15 @@
/// string -> int
typedef void (*gen_fn)(void);
typedef const char *(*str_str_fn)(const char *str);
typedef int64_t (*str_int_fn)(const char *str);
typedef int (*str_int_fn)(const char *str);
typedef const char *(*int_str_fn)(int64_t i);
typedef int64_t (*int_int_fn)(int64_t i);
typedef int (*int_int_fn)(int64_t i);
/// os_libcall - call a function in a dynamic loadable library
///
/// an example of calling a function that takes a string and returns an int:
///
/// int64_t int_out = 0;
/// int int_out = 0;
/// os_libcall("mylib.so", "somefn", "string-argument", 0, NULL, &int_out);
///
/// @param libname the name of the library to load (e.g.: libsomething.so)
@ -43,7 +43,7 @@ bool os_libcall(const char *libname,
const char *argv,
int64_t argi,
char **str_out,
int64_t *int_out)
int *int_out)
{
if (!libname || !funcname) {
return false;