470a_uppsrc.diff

The diff file to apply for uppsrc directory (variant a) - Sender Ghost, 08/16/2013 07:03 AM

Download (1.51 KB)

View differences:

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; }