Changeset 4412

Show
Ignore:
Timestamp:
04/07/09 04:02:15 (4 years ago)
Author:
jow
Message:

contrib/lar:

  • unify code style and data types
  • optimizations for string operations
Location:
luci/trunk/contrib/lar
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • luci/trunk/contrib/lar/lar.c

    r4410 r4412  
    3232    uint32_t idx_offset; 
    3333    uint32_t idx_length; 
    34     lar_index *idx_map, *idx_ptr; 
     34    lar_index *idx_map; 
     35    lar_index *idx_ptr; 
    3536 
    3637    if( lseek(ar->fd, -(sizeof(idx_offset)), SEEK_END) == -1 ) 
     
    4647    idx_map = NULL; 
    4748 
    48     for( i = 0; i < idx_length; \ 
    49         i += (sizeof(lar_index) - sizeof(char *)) 
    50     ) { 
     49    for( i = 0; i < idx_length; i += (sizeof(lar_index) - sizeof(char *)) ) { 
    5150        idx_ptr = (lar_index *)malloc(sizeof(lar_index)); 
    5251 
     
    6564} 
    6665 
    67 uint32_t lar_get_filename( lar_archive *ar, 
    68     lar_index *idx_ptr, char *filename 
    69 ) { 
     66uint32_t lar_get_filename( lar_archive *ar, lar_index *idx_ptr, char *filename ) 
     67{ 
    7068    if( idx_ptr->nlength >= LAR_FNAME_BUFFER ) 
    7169        LAR_DIE("Filename exceeds maximum allowed length"); 
     
    7775        LAR_DIE("Unexpected EOF while reading filename"); 
    7876 
    79     filename[idx_ptr->nlength] = 0; 
     77    filename[idx_ptr->nlength] = '\0'; 
    8078 
    8179    return idx_ptr->nlength; 
     
    8684    lar_index *idx_ptr = ar->index; 
    8785    lar_member *member; 
    88     char memberfile[LAR_FNAME_BUFFER]; 
    8986    char *memberdata; 
    90     size_t pgsz  = getpagesize(); 
     87    size_t pgof; 
     88    size_t pgsz = getpagesize(); 
     89    LAR_FNAME(memberfile); 
    9190 
    9291    while(idx_ptr) 
     
    9695        if( !strncmp(memberfile, name, idx_ptr->nlength) ) 
    9796        { 
     97            pgof = ( idx_ptr->foffset % pgsz ); 
     98 
    9899            memberdata = mmap( 
    99                 0, idx_ptr->flength + ( idx_ptr->foffset % pgsz ), 
    100                 PROT_READ, MAP_PRIVATE, ar->fd, 
    101                 idx_ptr->foffset - ( idx_ptr->foffset % pgsz ) 
     100                0, idx_ptr->flength + pgof, PROT_READ, MAP_PRIVATE, 
     101                ar->fd, idx_ptr->foffset - pgof 
    102102            ); 
    103103 
     
    109109            member->flags  = idx_ptr->flags; 
    110110            member->length = idx_ptr->flength; 
    111             member->data   = &memberdata[idx_ptr->foffset % pgsz]; 
     111            member->data   = &memberdata[pgof]; 
    112112 
    113113            member->mmap   = memberdata; 
    114             member->mlen   = idx_ptr->flength + ( idx_ptr->foffset % pgsz ); 
     114            member->mlen   = idx_ptr->flength + pgof; 
    115115 
    116116            return member; 
     
    177177lar_archive * lar_find_archive( const char *package, const char *path ) 
    178178{ 
    179     int seg = 1; 
    180     int len = 0; 
    181     int pln = 0; 
    182     int i, j; 
     179    uint32_t i; 
     180    uint32_t j; 
     181    uint32_t seg = 1; 
     182    uint32_t len = 0; 
     183    uint32_t pln = 0; 
    183184    struct stat s; 
    184185    LAR_FNAME(buffer); 
     
    212213        } 
    213214 
    214         buffer[pln+i+0] = '.'; buffer[pln+i+1] = 'l'; buffer[pln+i+2] = 'a'; 
    215         buffer[pln+i+3] = 'r'; buffer[pln+i+4] = '\0'; 
     215        strcpy(&buffer[pln+i], ".lar"); 
    216216 
    217217        if( (stat(buffer, &s) > -1) && (s.st_mode & S_IFREG) ) 
     
    237237    } 
    238238 
    239     buffer[len+0] = '.'; buffer[len+1] = 'l'; buffer[len+2] = 'u'; 
    240     buffer[len+3] = 'a'; buffer[len+4] = '\0'; 
     239    strcpy(&buffer[len], ".lua"); 
    241240 
    242241    return lar_open_member(ar, buffer); 
  • luci/trunk/contrib/lar/openwrt/050-lar-source-loader.patch

    r4411 r4412  
    1313diff -Nurb lua-5.1.4.orig/src/lar.c lua-5.1.4/src/lar.c 
    1414--- lua-5.1.4.orig/src/lar.c    1970-01-01 01:00:00.000000000 +0100 
    15 +++ lua-5.1.4/src/lar.c 2009-04-07 00:35:55.000000000 +0200 
    16 @@ -0,0 +1,243 @@ 
     15+++ lua-5.1.4/src/lar.c 2009-04-07 03:53:29.000000000 +0200 
     16@@ -0,0 +1,242 @@ 
    1717+#include "lar.h" 
    1818+ 
     
    4848+   uint32_t idx_offset; 
    4949+   uint32_t idx_length; 
    50 +   lar_index *idx_map, *idx_ptr; 
     50+   lar_index *idx_map; 
     51+   lar_index *idx_ptr; 
    5152+ 
    5253+   if( lseek(ar->fd, -(sizeof(idx_offset)), SEEK_END) == -1 ) 
     
    6263+   idx_map = NULL; 
    6364+ 
    64 +   for( i = 0; i < idx_length; \ 
    65 +       i += (sizeof(lar_index) - sizeof(char *)) 
    66 +   ) { 
     65+   for( i = 0; i < idx_length; i += (sizeof(lar_index) - sizeof(char *)) ) { 
    6766+       idx_ptr = (lar_index *)malloc(sizeof(lar_index)); 
    6867+ 
     
    8180+} 
    8281+ 
    83 +uint32_t lar_get_filename( lar_archive *ar, 
    84 +   lar_index *idx_ptr, char *filename 
    85 +) { 
     82+uint32_t lar_get_filename( lar_archive *ar, lar_index *idx_ptr, char *filename ) 
     83+{ 
    8684+   if( idx_ptr->nlength >= LAR_FNAME_BUFFER ) 
    8785+       LAR_DIE("Filename exceeds maximum allowed length"); 
     
    9391+       LAR_DIE("Unexpected EOF while reading filename"); 
    9492+ 
    95 +   filename[idx_ptr->nlength] = 0; 
     93+   filename[idx_ptr->nlength] = '\0'; 
    9694+ 
    9795+   return idx_ptr->nlength; 
     
    102100+   lar_index *idx_ptr = ar->index; 
    103101+   lar_member *member; 
    104 +   char memberfile[LAR_FNAME_BUFFER]; 
    105102+   char *memberdata; 
    106 +   size_t pgsz  = getpagesize(); 
     103+   size_t pgof; 
     104+   size_t pgsz = getpagesize(); 
     105+   LAR_FNAME(memberfile); 
    107106+ 
    108107+   while(idx_ptr) 
     
    112111+       if( !strncmp(memberfile, name, idx_ptr->nlength) ) 
    113112+       { 
     113+           pgof = ( idx_ptr->foffset % pgsz ); 
     114+ 
    114115+           memberdata = mmap( 
    115 +               0, idx_ptr->flength + ( idx_ptr->foffset % pgsz ), 
    116 +               PROT_READ, MAP_PRIVATE, ar->fd, 
    117 +               idx_ptr->foffset - ( idx_ptr->foffset % pgsz ) 
     116+               0, idx_ptr->flength + pgof, PROT_READ, MAP_PRIVATE, 
     117+               ar->fd, idx_ptr->foffset - pgof 
    118118+           ); 
    119119+ 
     
    125125+           member->flags  = idx_ptr->flags; 
    126126+           member->length = idx_ptr->flength; 
    127 +           member->data   = &memberdata[idx_ptr->foffset % pgsz]; 
     127+           member->data   = &memberdata[pgof]; 
    128128+ 
    129129+           member->mmap   = memberdata; 
    130 +           member->mlen   = idx_ptr->flength + ( idx_ptr->foffset % pgsz ); 
     130+           member->mlen   = idx_ptr->flength + pgof; 
    131131+ 
    132132+           return member; 
     
    193193+lar_archive * lar_find_archive( const char *package, const char *path ) 
    194194+{ 
    195 +   int seg = 1; 
    196 +   int len = 0; 
    197 +   int pln = 0; 
    198 +   int i, j; 
     195+   uint32_t i; 
     196+   uint32_t j; 
     197+   uint32_t seg = 1; 
     198+   uint32_t len = 0; 
     199+   uint32_t pln = 0; 
    199200+   struct stat s; 
    200201+   LAR_FNAME(buffer); 
     
    228229+       } 
    229230+ 
    230 +       buffer[pln+i+0] = '.'; buffer[pln+i+1] = 'l'; buffer[pln+i+2] = 'a'; 
    231 +       buffer[pln+i+3] = 'r'; buffer[pln+i+4] = '\0'; 
     231+       strcpy(&buffer[pln+i], ".lar"); 
    232232+ 
    233233+       if( (stat(buffer, &s) > -1) && (s.st_mode & S_IFREG) ) 
     
    253253+   } 
    254254+ 
    255 +   buffer[len+0] = '.'; buffer[len+1] = 'l'; buffer[len+2] = 'u'; 
    256 +   buffer[len+3] = 'a'; buffer[len+4] = '\0'; 
     255+   strcpy(&buffer[len], ".lua"); 
    257256+ 
    258257+   return lar_open_member(ar, buffer);