[Groonga-commit] groonga/groonga at e056558 [master] Add explicit cast

Back to archive index

Kouhei Sutou null+****@clear*****
Wed May 11 10:35:03 JST 2016


Kouhei Sutou	2016-05-11 10:35:03 +0900 (Wed, 11 May 2016)

  New Revision: e056558fed23805267025371dd1288a3e107aeeb
  https://github.com/groonga/groonga/commit/e056558fed23805267025371dd1288a3e107aeeb

  Message:
    Add explicit cast
    
    Because size_t may be less than uint64_t.

  Modified files:
    lib/alloc.c

  Modified: lib/alloc.c (+6 -2)
===================================================================
--- lib/alloc.c    2016-05-11 10:31:08 +0900 (bc5264e)
+++ lib/alloc.c    2016-05-11 10:35:03 +0900 (5d77c19)
@@ -378,6 +378,7 @@ grn_ctx_alloc(grn_ctx *ctx, size_t size, int flags,
     size = ((size + ALIGN_MASK) & ~ALIGN_MASK) + ALIGN_SIZE;
     if (size > GRN_CTX_SEGMENT_SIZE) {
       uint64_t npages = (size + (grn_pagesize - 1)) / grn_pagesize;
+      size_t aligned_size;
       if (npages >= (1LL<<32)) {
         MERR("too long request size=%" GRN_FMT_SIZE, size);
         goto exit;
@@ -389,7 +390,8 @@ grn_ctx_alloc(grn_ctx *ctx, size_t size, int flags,
         }
         if (!mi->map) { break; }
       }
-      if (!grn_io_anon_map(ctx, mi, npages * grn_pagesize)) { goto exit; }
+      aligned_size = grn_pagesize * ((size_t)npages);
+      if (!grn_io_anon_map(ctx, mi, aligned_size)) { goto exit; }
       /* GRN_LOG(ctx, GRN_LOG_NOTICE, "map i=%d (%d)", i, npages * grn_pagesize); */
       mi->nref = (uint32_t) npages;
       mi->count = GRN_CTX_SEGMENT_VLEN;
@@ -559,6 +561,7 @@ grn_ctx_alloc_lifo(grn_ctx *ctx, size_t size,
     grn_io_mapinfo *mi = &ctx->impl->segs[i];
     if (size > GRN_CTX_SEGMENT_SIZE) {
       uint64_t npages = (size + (grn_pagesize - 1)) / grn_pagesize;
+      size_t aligned_size;
       if (npages >= (1LL<<32)) {
         MERR("too long request size=%" GRN_FMT_SIZE, size);
         return NULL;
@@ -571,7 +574,8 @@ grn_ctx_alloc_lifo(grn_ctx *ctx, size_t size,
         mi++;
         if (!mi->map) { break; }
       }
-      if (!grn_io_anon_map(ctx, mi, npages * grn_pagesize)) { return NULL; }
+      aligned_size = grn_pagesize * ((size_t)npages);
+      if (!grn_io_anon_map(ctx, mi, aligned_size)) { return NULL; }
       mi->nref = (uint32_t) npages;
       mi->count = GRN_CTX_SEGMENT_VLEN|GRN_CTX_SEGMENT_LIFO;
       ctx->impl->lifoseg = i;
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index