470a_uppsrc.diff
uppsrc/Core/ValueUtil.cpp 2013-08-16 08:29:03 +0400 | ||
---|---|---|
500 | 500 |
Clone().key.Set(i, k); |
501 | 501 |
} |
502 | 502 |
|
503 |
int ValueMap::RemoveKey(const Value& key) |
|
504 |
{ |
|
505 |
Data& d = Clone(); |
|
506 |
Vector<int> rk; |
|
507 |
int q = d.key.Find(key); |
|
508 |
while(q >= 0) { |
|
509 |
rk.Add(q); |
|
510 |
q = d.key.FindNext(q); |
|
511 |
} |
|
512 |
int count = rk.GetCount(); |
|
513 |
for(int i = count - 1; i >= 0; --i) { |
|
514 |
d.key.Remove(rk[i]); |
|
515 |
d.value.Remove(rk[i]); |
|
516 |
} |
|
517 |
return count; |
|
518 |
} |
|
519 |
|
|
503 | 520 |
void ValueMap::Remove(int i) |
504 | 521 |
{ |
505 | 522 |
Data& d = Clone(); |
uppsrc/Core/ValueUtil.h 2013-08-16 08:27:14 +0400 | ||
---|---|---|
323 | 323 |
void SetKey(int i, const char* key) { SetKey(i, Value(key)); } |
324 | 324 |
void SetKey(int i, int key) { SetKey(i, Value(key)); } |
325 | 325 |
void SetKey(int i, Id key) { SetKey(i, Value(key.ToString())); } |
326 |
|
|
327 |
int RemoveKey(const Value& key); |
|
328 |
int RemoveKey(const String& key) { return RemoveKey(Value(key)); } |
|
329 |
int RemoveKey(const char* key) { return RemoveKey(Value(key)); } |
|
330 |
int RemoveKey(int key) { return RemoveKey(Value(key)); } |
|
331 |
int RemoveKey(Id key) { return RemoveKey(Value(key.ToString())); } |
|
326 | 332 |
void Remove(int i); |
327 | 333 |
|
328 | 334 |
const Index<Value>& GetKeys() const { return data->key; } |