From 254ebaf068919407de6bd83ac905bd2f36ad944e Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 23 Feb 2016 16:06:28 +0100 Subject: patch 7.4.1400 Problem: Perl eval doesn't work properly on 64-bit big-endian machine. Solution: Use 32 bit type for the key. (Danek Duvall) --- src/if_perl.xs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/if_perl.xs') diff --git a/src/if_perl.xs b/src/if_perl.xs index 47c944039c..9ca52917f5 100644 --- a/src/if_perl.xs +++ b/src/if_perl.xs @@ -1097,7 +1097,7 @@ perl_to_vim(SV *sv, typval_T *rettv) case SVt_PVHV: /* dictionary */ { HE * entry; - size_t key_len; + I32 key_len; char * key; dictitem_T * item; SV * item2; @@ -1121,9 +1121,9 @@ perl_to_vim(SV *sv, typval_T *rettv) for (entry = hv_iternext((HV *)sv); entry; entry = hv_iternext((HV *)sv)) { key_len = 0; - key = hv_iterkey(entry, (I32 *)&key_len); + key = hv_iterkey(entry, &key_len); - if (!key || !key_len || strlen(key) < key_len) { + if (!key || !key_len || strlen(key) < (size_t)key_len) { EMSG2("Malformed key Dictionary '%s'", key && *key ? key : "(empty)"); break; } -- cgit v1.2.3