Changeset 273 for cpp/frams/param


Ignore:
Timestamp:
12/18/14 12:45:27 (9 years ago)
Author:
Maciej Komosinski
Message:
  • 'o'-type fields are no longer ignored when saving (serialization like 'x')
  • fixed incorrect paramtab offset generation in ParamObject::makeParamTab()
Location:
cpp/frams/param
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/param/param.cpp

    r268 r273  
    263263        if ((flags(i)&PARAM_DONTSAVE) && (!force)) return 0;
    264264        const char *typ = type(i);
    265         if ((*typ == 'p') || (*typ == 'o')) return 0;
     265        if (*typ == 'p') return 0;
    266266
    267267        const char *t, *w;
     
    271271        err |= (fputs(p, f) == EOF); fputc(':', f);
    272272        cr = 0;
    273         if (*typ == 'x')
     273        if ((*typ == 'x')||(*typ == 'o'))
    274274        {
    275275                ExtValue ex;
     
    544544int ParamInterface::set(int i, const char *v)
    545545{
    546         switch (type(i)[0])
     546        char typ=type(i)[0];
     547        switch (typ)
    547548        {
    548549        case 'd': return setInt(i, v);
    549550        case 'f': return setDouble(i, v);
    550551        case 's': { SString t(v); return setString(i, t); }
    551         case 'x':
     552        case 'x': case 'o':
    552553        {
    553554                ExtValue e;
     
    567568                        e.setString(SString(v));
    568569                }
    569                 return setExtValue(i, e);
     570                if (typ=='x')
     571                        return setExtValue(i, e);
     572                else
     573                        return setObject(i, e.getObject());
    570574        }
    571575        }
  • cpp/frams/param/paramobj.cpp

    r197 r273  
    5757                        t->type=maybedup(dupentries,pi->type(i));
    5858                        t->help=maybedup(dupentries,pi->help(i));
    59                         t++;
    60                         n++;
     59                        t++; n++; offs++;
    6160                        if (n>count) break;
    6261                        }
    63                 offs++;
    6462                }
    6563        }
Note: See TracChangeset for help on using the changeset viewer.