summaryrefslogtreecommitdiff
path: root/storage/xtradb/include/ut0rnd.ic
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2010-04-28 16:35:00 +0200
committerunknown <knielsen@knielsen-hq.org>2010-04-28 16:35:00 +0200
commit9f9629ca820d77fa7ea77afaa316b127f22ee007 (patch)
tree38427051e417a093270aa5047e4b044c82bca805 /storage/xtradb/include/ut0rnd.ic
parentaf2309a1709cd710dee72597ee7bb3bf93a90159 (diff)
parent3e4d2be619d1d67f6d7405514295d4faf21d39c5 (diff)
downloadmariadb-git-9f9629ca820d77fa7ea77afaa316b127f22ee007.tar.gz
Merge XtraDB 10 into MariaDB.
Diffstat (limited to 'storage/xtradb/include/ut0rnd.ic')
-rw-r--r--storage/xtradb/include/ut0rnd.ic25
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);
+}