Changeset 84 for trunk/lib/regfi.c


Ignore:
Timestamp:
01/19/07 09:52:25 (17 years ago)
Author:
tim
Message:

rearranged structure contents to reduce fragmentation on 64 bit systems.

make regfi interface return const structures to help enforce separation

removed a little cruft from some parsing functions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/regfi.c

    r82 r84  
    11/*
    22 * Branched from Samba project Subversion repository, version #7470:
    3  *   http://websvn.samba.org/cgi-bin/viewcvs.cgi/trunk/source/registry/regfio.c
     3 *   http://viewcvs.samba.org/cgi-bin/viewcvs.cgi/trunk/source/registry/regfio.c?rev=7470&view=auto
    44 *
    55 * Unix SMB/CIFS implementation.
     
    437437  depth++;
    438438       
    439   if(!prs_uint8s(true, "header", ps, depth, file->header, sizeof(file->header)))
     439  if(!prs_uint8s("header", ps, depth, file->header, sizeof(file->header)))
    440440    return false;
    441441       
     
    499499  depth++;
    500500       
    501   if(!prs_uint8s(true, "header", ps, depth, hbin->header, sizeof(hbin->header)))
     501  if(!prs_uint8s("header", ps, depth, hbin->header, sizeof(hbin->header)))
    502502    return false;
    503503
     
    547547    return false;
    548548       
    549   if (!prs_uint8s(true, "header", ps, depth, nk->header, sizeof(nk->header)))
     549  if (!prs_uint8s("header", ps, depth, nk->header, sizeof(nk->header)))
    550550    return false;
    551551               
     
    610610        return false;
    611611
    612     if(!prs_uint8s(true, "name", ps, depth, (uint8*)nk->keyname, name_length))
     612    if(!prs_uint8s("name", ps, depth, (uint8*)nk->keyname, name_length))
    613613      return false;
    614614
     
    848848  if ( !prs_uint32( "nk_off", ps, depth, &hash->nk_off ))
    849849    return false;
    850   if ( !prs_uint8s( true, "keycheck", ps, depth, hash->keycheck, sizeof( hash->keycheck )) )
     850  if ( !prs_uint8s("keycheck", ps, depth, hash->keycheck, sizeof( hash->keycheck )) )
    851851    return false;
    852852       
     
    884884    return false;
    885885
    886   if(!prs_uint8s(true, "header", &hbin->ps, depth,
     886  if(!prs_uint8s("header", &hbin->ps, depth,
    887887                 lf->header, sizeof(lf->header)))
    888888    return false;
     
    938938    return false;
    939939
    940   if (!prs_uint8s(true, "header", ps, depth, sk->header, sizeof(sk->header)))
     940  if (!prs_uint8s("header", ps, depth, sk->header, sizeof(sk->header)))
    941941    return false;
    942942  if ( !prs_uint16( "tag", ps, depth, &tag))
     
    990990    return false;
    991991
    992   if ( !prs_uint8s( true, "header", ps, depth, vk->header, sizeof( vk->header )) )
     992  if ( !prs_uint8s("header", ps, depth, vk->header, sizeof( vk->header )) )
    993993    return false;
    994994
     
    10191019        return false;
    10201020    }
    1021     if ( !prs_uint8s(true, "name", ps, depth,
     1021    if ( !prs_uint8s("name", ps, depth,
    10221022                     (uint8*)vk->valuename, name_length) )
    10231023      return false;
     
    10301030  if ( vk->data_size != 0 )
    10311031  {
    1032     bool charmode = false;
    1033 
    1034     if ( (vk->type == REG_SZ) || (vk->type == REG_MULTI_SZ) )
    1035       charmode = true;
    1036 
    10371032    /* the data is stored in the offset if the size <= 4 */
    10381033    if ( !(vk->data_size & VK_DATA_IN_OFFSET) )
     
    10671062      if ( !prs_uint32( "data_rec_size", &hblock->ps, depth, &data_rec_size ))
    10681063        return false;
    1069       if(!prs_uint8s(charmode, "data", &hblock->ps, depth,
     1064      if(!prs_uint8s("data", &hblock->ps, depth,
    10701065                     vk->data, vk->data_size))
    10711066        return false;
     
    13231318    if ( !prs_uint32( "record_size", ps, 0, &record_size ) )
    13241319      return false;
    1325     if ( !prs_uint8s( true, "header", ps, 0, header, REC_HDR_SIZE ) )
     1320    if ( !prs_uint8s("header", ps, 0, header, REC_HDR_SIZE ) )
    13261321      return false;
    13271322
     
    16001595    return false;
    16011596
    1602   subkey = regfi_iterator_cur_subkey(i);
     1597  subkey = (REGF_NK_REC*)regfi_iterator_cur_subkey(i);
    16031598  if(subkey == NULL)
    16041599  {
     
    16671662
    16681663  /* XXX: this alloc/free of each sub key might be a bit excessive */
    1669   subkey = regfi_iterator_first_subkey(i);
     1664  subkey = (REGF_NK_REC*)regfi_iterator_first_subkey(i);
    16701665  while((subkey != NULL) && (found == false))
    16711666  {
     
    16761671    {
    16771672      regfi_key_free(subkey);
    1678       subkey = regfi_iterator_next_subkey(i);
     1673      subkey = (REGF_NK_REC*)regfi_iterator_next_subkey(i);
    16791674    }
    16801675  }
     
    17181713/******************************************************************************
    17191714 *****************************************************************************/
    1720 REGF_NK_REC* regfi_iterator_cur_key(REGFI_ITERATOR* i)
     1715const REGF_NK_REC* regfi_iterator_cur_key(REGFI_ITERATOR* i)
    17211716{
    17221717  return i->cur_key;
     
    17261721/******************************************************************************
    17271722 *****************************************************************************/
    1728 REGF_NK_REC* regfi_iterator_first_subkey(REGFI_ITERATOR* i)
     1723const REGF_NK_REC* regfi_iterator_first_subkey(REGFI_ITERATOR* i)
    17291724{
    17301725  i->cur_subkey = 0;
     
    17351730/******************************************************************************
    17361731 *****************************************************************************/
    1737 REGF_NK_REC* regfi_iterator_cur_subkey(REGFI_ITERATOR* i)
     1732const REGF_NK_REC* regfi_iterator_cur_subkey(REGFI_ITERATOR* i)
    17381733{
    17391734  REGF_NK_REC* subkey;
     
    17781773 *****************************************************************************/
    17791774/* XXX: some way of indicating reason for failure should be added. */
    1780 REGF_NK_REC* regfi_iterator_next_subkey(REGFI_ITERATOR* i)
    1781 {
    1782   REGF_NK_REC* subkey;
     1775const REGF_NK_REC* regfi_iterator_next_subkey(REGFI_ITERATOR* i)
     1776{
     1777  const REGF_NK_REC* subkey;
    17831778
    17841779  i->cur_subkey++;
     
    17961791bool regfi_iterator_find_value(REGFI_ITERATOR* i, const char* value_name)
    17971792{
    1798   REGF_VK_REC* cur;
     1793  const REGF_VK_REC* cur;
    17991794  bool found = false;
    18001795
     
    18231818/******************************************************************************
    18241819 *****************************************************************************/
    1825 REGF_VK_REC* regfi_iterator_first_value(REGFI_ITERATOR* i)
     1820const REGF_VK_REC* regfi_iterator_first_value(REGFI_ITERATOR* i)
    18261821{
    18271822  i->cur_value = 0;
     
    18321827/******************************************************************************
    18331828 *****************************************************************************/
    1834 REGF_VK_REC* regfi_iterator_cur_value(REGFI_ITERATOR* i)
     1829const REGF_VK_REC* regfi_iterator_cur_value(REGFI_ITERATOR* i)
    18351830{
    18361831  REGF_VK_REC* ret_val = NULL;
     
    18441839/******************************************************************************
    18451840 *****************************************************************************/
    1846 REGF_VK_REC* regfi_iterator_next_value(REGFI_ITERATOR* i)
    1847 {
    1848   REGF_VK_REC* ret_val;
     1841const REGF_VK_REC* regfi_iterator_next_value(REGFI_ITERATOR* i)
     1842{
     1843  const REGF_VK_REC* ret_val;
    18491844
    18501845  i->cur_value++;
Note: See TracChangeset for help on using the changeset viewer.