Mercurial > vim
diff src/if_perl.xs @ 8214:51b4fba718bf v7.4.1400
commit https://github.com/vim/vim/commit/254ebaf068919407de6bd83ac905bd2f36ad944e
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Feb 23 16:06:28 2016 +0100
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)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 23 Feb 2016 16:15:05 +0100 |
parents | b6cb94ad97a4 |
children | 83d0b976d9b3 |
line wrap: on
line diff
--- 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; }