Diff for /libelwix/src/vars.c between versions 1.4.20.1 and 1.6

version 1.4.20.1, 2013/08/21 16:04:14 version 1.6, 2013/11/14 21:31:28
Line 123  vars2buffer(u_char * __restrict buf, int buflen, int b Line 123  vars2buffer(u_char * __restrict buf, int buflen, int b
                                 break;                                  break;
                         case buffer:                          case buffer:
                         case string:                          case string:
                           case ptr:
                                 if (AIT_LEN(val) > buflen - Limit) {                                  if (AIT_LEN(val) > buflen - Limit) {
                                         elwix_SetErr(EMSGSIZE, "Short buffer buflen=%d "                                          elwix_SetErr(EMSGSIZE, "Short buffer buflen=%d "
                                                         "needed min %d", buflen, Limit + AIT_LEN(val));                                                          "needed min %d", buflen, Limit + AIT_LEN(val));
Line 218  buffer2vars(u_char * __restrict buf, int buflen, int v Line 219  buffer2vars(u_char * __restrict buf, int buflen, int v
                                         val->val.net = le64toh(v[i].val.net);                                          val->val.net = le64toh(v[i].val.net);
                                 break;                                  break;
                         case data:                          case data:
                                /* WARNING:: remap data type to buffer */                        case ptr:
                                 /* WARNING:: remap data and ptr type to buffer! */
                                 val->val_type = buffer;                                  val->val_type = buffer;
                         case buffer:                          case buffer:
                         case string:                          case string:
Line 407  ait_clrVars(array_t * __restrict vars) Line 409  ait_clrVars(array_t * __restrict vars)
 void  void
 ait_freeVars(array_t ** __restrict vars)  ait_freeVars(array_t ** __restrict vars)
 {  {
           register int i;
           ait_val_t *v;
   
         if (!vars || !*vars)          if (!vars || !*vars)
                 return;                  return;
   
        ait_clrVars(*vars);        for (i = 0; i < array_Size(*vars); i++)
        array_Free(*vars);                if ((v = array(*vars, i, ait_val_t*))) {
                         /* free memory if isn't zero copy */
                         if (!AIT_IN(v)) {
                                 AIT_FREE_VAL(v);
                                 if ((*vars)->arr_data[i])
                                         e_free((*vars)->arr_data[i]);
                         } else
                                 AIT_FREE_VAL(v);
                         (*vars)->arr_data[i] = NULL;
                 }
         (*vars)->arr_last = -1;
 
         array_Destroy(vars);          array_Destroy(vars);
 }  }
   
Line 419  ait_freeVars(array_t ** __restrict vars) Line 435  ait_freeVars(array_t ** __restrict vars)
  * ait_resideVars() - Calculate footprint of resided variables into array   * ait_resideVars() - Calculate footprint of resided variables into array
  *   *
  * @vars = Variable array   * @vars = Variable array
 * return: -1 error or !=-1 bytes for whole array * return: bytes for whole array
  */   */
ssize_tsize_t
 ait_resideVars(array_t * __restrict vars)  ait_resideVars(array_t * __restrict vars)
 {  {
        ssize_t ret = 0;        size_t ret = 0;
         register int i;          register int i;
   
        if (!vars)        if (vars) {
                return -1;                ret = array_Size(vars) * sizeof(ait_val_t);
                for (i = 0; i < array_Size(vars); i++)
        ret = array_Size(vars) * sizeof(ait_val_t);                        switch (AIT_TYPE(array(vars, i, ait_val_t*))) {
        for (i = 0; i < array_Size(vars); i++)                                case buffer:
                switch (AIT_TYPE(array(vars, i, ait_val_t*))) {                                case string:
                        case buffer:                                case data:
                        case string:                                case ptr:
                        case data:                                        ret += AIT_LEN(array(vars, i, ait_val_t*));
                        case ptr:                                        break;
                                ret += AIT_LEN(array(vars, i, ait_val_t*));                                default:
                                break;                                        break;
                        default:                        }
                                break;        }
                } 
   
         return ret;          return ret;
 }  }

Removed from v.1.4.20.1  
changed lines
  Added in v.1.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>