pike.git / lib / modules / Mapping.pmod

version» Context lines:

pike.git/lib/modules/Mapping.pmod:42:    {    if (!joined || !equal(parent, parent_copy)) {    joined = [mapping](parent + shadow);    parent_copy = [mapping](parent + ([]));    }    }       protected mixed `[](mixed ind)    {    mixed res = shadow[ind]; -  if (!zero_type(res)) return res; +  if (!undefinedp(res)) return res;    return parent[ind];    }       protected void `[]=(mixed ind, mixed val)    {    joined = 0; -  if (modify_parent && zero_type(shadow[ind])) { +  if (modify_parent && !has_index(shadow, ind)) {    parent[ind] = val;    } else {    shadow[ind] = val;    }    }       protected mixed `->(string ind)    {    return `[](ind);    }
pike.git/lib/modules/Mapping.pmod:75:       protected int(0..1) _equal(mixed other)    {    update_joined();    return equal(other, joined);    }       protected mixed _m_delete(mixed ind)    {    mixed res = m_delete(shadow, ind); -  if (zero_type(res)) { +  if (undefinedp(res))    res = m_delete(parent, ind); -  } -  if (!zero_type(res)) { +  else    joined = 0; -  } +     return res;    }       protected array(mixed) _indices()    {    update_joined();    return indices(joined);    }       protected array(mixed) _values()