diff options
author | unknown <knielsen@knielsen-hq.org> | 2010-04-28 16:35:00 +0200 |
---|---|---|
committer | unknown <knielsen@knielsen-hq.org> | 2010-04-28 16:35:00 +0200 |
commit | 9f9629ca820d77fa7ea77afaa316b127f22ee007 (patch) | |
tree | 38427051e417a093270aa5047e4b044c82bca805 /storage/xtradb/include/ut0rnd.ic | |
parent | af2309a1709cd710dee72597ee7bb3bf93a90159 (diff) | |
parent | 3e4d2be619d1d67f6d7405514295d4faf21d39c5 (diff) | |
download | mariadb-git-9f9629ca820d77fa7ea77afaa316b127f22ee007.tar.gz |
Merge XtraDB 10 into MariaDB.
Diffstat (limited to 'storage/xtradb/include/ut0rnd.ic')
-rw-r--r-- | storage/xtradb/include/ut0rnd.ic | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/storage/xtradb/include/ut0rnd.ic b/storage/xtradb/include/ut0rnd.ic index 763469142ec..372b5b6d5b7 100644 --- a/storage/xtradb/include/ut0rnd.ic +++ b/storage/xtradb/include/ut0rnd.ic @@ -228,3 +228,28 @@ ut_fold_binary( return(fold); } + +UNIV_INLINE +ulint +ut_fold_binary_32( +/*==============*/ + const byte* str, /*!< in: string of bytes */ + ulint len) /*!< in: length */ +{ + const ib_uint32_t* str_end = (const ib_uint32_t*) (str + len); + const ib_uint32_t* str_32 = (const ib_uint32_t*) str; + ulint fold = 0; + + ut_ad(str); + /* This function is only for word-aligned data */ + ut_ad(len % 4 == 0); + ut_ad((ulint)str % 4 == 0); + + while (str_32 < str_end) { + fold = ut_fold_ulint_pair(fold, (ulint)(*str_32)); + + str_32++; + } + + return(fold); +} |