(file) Return to batch.c CVS log (file) (dir) Up to [OMI] / omi / base

Diff for /omi/base/batch.c between version 1.2 and 1.3

version 1.2, 2015/04/20 18:10:09 version 1.3, 2015/04/20 18:19:49
Line 24 
Line 24 
  
 #include <assert.h> #include <assert.h>
 #include "batch.h" #include "batch.h"
 #include "strings.h"  #include <pal/strings.h>
  
 #define BATCH_PAGE_SIZE ((size_t)(BLOCK_SIZE * 2)) #define BATCH_PAGE_SIZE ((size_t)(BLOCK_SIZE * 2))
 #define BLOCK_SIZE ((size_t)512) #define BLOCK_SIZE ((size_t)512)
Line 49 
Line 49 
     /* Allocate a new page and carve new block from that page */     /* Allocate a new page and carve new block from that page */
     if (size8 <= BLOCK_SIZE && self->numPages < self->maxPages)     if (size8 <= BLOCK_SIZE && self->numPages < self->maxPages)
     {     {
         Page* page = malloc(BATCH_PAGE_SIZE);          Page* page = PAL_Malloc(BATCH_PAGE_SIZE);
         char* ptr;         char* ptr;
  
         if (!page)         if (!page)
Line 85 
Line 85 
      * blocks list)      * blocks list)
      */      */
     {     {
         Page* page = malloc(sizeof(Page) + size8);          Page* page = PAL_Malloc(sizeof(Page) + size8);
  
         if (!page)         if (!page)
             return NULL;             return NULL;
Line 121 
Line 121 
         if ((char*)self>=(char*)(p + 1) && (char*)self<(char*)p + p->u.s.size)         if ((char*)self>=(char*)(p + 1) && (char*)self<(char*)p + p->u.s.size)
             selfPtr = p;             selfPtr = p;
         else         else
             free(p);              PAL_Free(p);
  
         p = next;         p = next;
     }     }
  
     if (selfPtr)     if (selfPtr)
         free(selfPtr);          PAL_Free(selfPtr);
 } }
  
 void Batch_InitFromBuffer( void Batch_InitFromBuffer(
Line 208 
Line 208 
             else             else
                 self->pages = p->u.s.next;                 self->pages = p->u.s.next;
  
             free(p);              PAL_Free(p);
             return;             return;
         }         }
 #if defined (CONFIG_ENABLE_DEBUG) #if defined (CONFIG_ENABLE_DEBUG)
Line 234 
Line 234 
 #endif #endif
 } }
  
 MI_Char* Batch_Zdup(  _Use_decl_annotations_
   ZChar* Batch_Tcsdup(
     Batch* self,     Batch* self,
     const MI_Char* str)      const ZChar* str)
 { {
     MI_Char* p;      ZChar* p;
     size_t size;     size_t size;
  
     size = (Zlen(str) + 1) * sizeof(MI_Char);      size = (Tcslen(str) + 1) * sizeof(ZChar);
  
     p = Batch_Get(self, size);     p = Batch_Get(self, size);
  
Line 251 
Line 252 
     return memcpy(p, str, size);     return memcpy(p, str, size);
 } }
  
   _Use_decl_annotations_
 char* Batch_Strdup( char* Batch_Strdup(
     Batch* self,     Batch* self,
     const char* str)     const char* str)
 { {
     char* p;     char* p;
     size_t size;      size_t size = 0;
  
     size = (Strlen(str) + 1);      if(!self || !str)
           return NULL;
  
     p = Batch_Get(self, size);      size = Strlen(str) + 1;
   
       p = (char*) Batch_Get(self, size);
  
     if (!p)     if (!p)
         return NULL;         return NULL;
Line 268 
Line 273 
     return memcpy(p, str, size);     return memcpy(p, str, size);
 } }
  
 MI_Char* Batch_Strdup2(  #if defined(CONFIG_ENABLE_WCHAR)
   char* Batch_ZStrdup(
       Batch* self,
       const ZChar* s)
   {
       size_t size = 0;
       char* p;
       size_t i;
   
       if(!self || !s)
           return NULL;
   
       size = Tcslen(s) + 1;
       p = Batch_Get(self, size * sizeof(char));
   
       if (!p)
           return NULL;
   
       for (i = 0; i < size; i++)
           p[i] = (char)s[i];
   
       return p;
   }
   #endif
   
   #if defined(CONFIG_ENABLE_WCHAR)
   ZChar* Batch_StrTcsdup(
     Batch* self,     Batch* self,
     const char* s)     const char* s)
 { {
     size_t size = strlen(s) + 1;      size_t size = 0;
     MI_Char* p;      ZChar* p;
     size_t i;     size_t i;
  
     p = Batch_Get(self, size * sizeof(MI_Char));      if(!self || !s)
           return NULL;
   
       size = strlen(s) + 1;
       p = Batch_Get(self, size * sizeof(ZChar));
  
     if (!p)     if (!p)
         return NULL;         return NULL;
  
     for (i = 0; i < size; i++)     for (i = 0; i < size; i++)
         p[i] = (MI_Char)s[i];          p[i] = (ZChar)s[i];
  
     return p;     return p;
 } }
   #endif
  
 size_t Batch_GetPageCount( size_t Batch_GetPageCount(
     Batch* self)     Batch* self)
Line 367 
Line 403 
             /* Round request size to a multiple of eight */             /* Round request size to a multiple of eight */
             size8 = (size + 7) & ~7;             size8 = (size + 7) & ~7;
  
             page = malloc(size8 + sizeof(Batch));              page = PAL_Malloc(size8 + sizeof(Batch));
  
             if (!page)             if (!page)
                 return MI_FALSE;                 return MI_FALSE;
Line 376 
Line 412 
             Batch_Init(*self, BATCH_MAX_PAGES);             Batch_Init(*self, BATCH_MAX_PAGES);
         }         }
         else         else
             page = malloc(sizeof(Page) + buffer[pages].pageSize);              page = PAL_Malloc(sizeof(Page) + buffer[pages].pageSize);
  
         if (!page)         if (!page)
         {         {


Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

ViewCVS 0.9.2