OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 inline bool HashMap<T, U, V, W, X, Y>::contains(KeyPeekInType key) const | 324 inline bool HashMap<T, U, V, W, X, Y>::contains(KeyPeekInType key) const |
325 { | 325 { |
326 return m_impl.contains(key); | 326 return m_impl.contains(key); |
327 } | 327 } |
328 | 328 |
329 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> | 329 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> |
330 template<typename HashTranslator, typename TYPE> | 330 template<typename HashTranslator, typename TYPE> |
331 inline typename HashMap<T, U, V, W, X, Y>::iterator | 331 inline typename HashMap<T, U, V, W, X, Y>::iterator |
332 HashMap<T, U, V, W, X, Y>::find(const TYPE& value) | 332 HashMap<T, U, V, W, X, Y>::find(const TYPE& value) |
333 { | 333 { |
334 return m_impl.template find<HashMapTranslatorAdapter<ValueTraits, HashTr
anslator> >(value); | 334 return m_impl.template find<HashMapTranslatorAdapter<ValueTraits, HashTr
anslator>>(value); |
335 } | 335 } |
336 | 336 |
337 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> | 337 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> |
338 template<typename HashTranslator, typename TYPE> | 338 template<typename HashTranslator, typename TYPE> |
339 inline typename HashMap<T, U, V, W, X, Y>::const_iterator | 339 inline typename HashMap<T, U, V, W, X, Y>::const_iterator |
340 HashMap<T, U, V, W, X, Y>::find(const TYPE& value) const | 340 HashMap<T, U, V, W, X, Y>::find(const TYPE& value) const |
341 { | 341 { |
342 return m_impl.template find<HashMapTranslatorAdapter<ValueTraits, HashTr
anslator> >(value); | 342 return m_impl.template find<HashMapTranslatorAdapter<ValueTraits, HashTr
anslator>>(value); |
343 } | 343 } |
344 | 344 |
345 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> | 345 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> |
346 template<typename HashTranslator, typename TYPE> | 346 template<typename HashTranslator, typename TYPE> |
347 inline bool | 347 inline bool |
348 HashMap<T, U, V, W, X, Y>::contains(const TYPE& value) const | 348 HashMap<T, U, V, W, X, Y>::contains(const TYPE& value) const |
349 { | 349 { |
350 return m_impl.template contains<HashMapTranslatorAdapter<ValueTraits, Ha
shTranslator> >(value); | 350 return m_impl.template contains<HashMapTranslatorAdapter<ValueTraits, Ha
shTranslator>>(value); |
351 } | 351 } |
352 | 352 |
353 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> | 353 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> |
354 typename HashMap<T, U, V, W, X, Y>::AddResult | 354 typename HashMap<T, U, V, W, X, Y>::AddResult |
355 HashMap<T, U, V, W, X, Y>::inlineAdd(KeyPeekInType key, MappedPassInReferenc
eType mapped) | 355 HashMap<T, U, V, W, X, Y>::inlineAdd(KeyPeekInType key, MappedPassInReferenc
eType mapped) |
356 { | 356 { |
357 return m_impl.template add<HashMapTranslator<ValueTraits, HashFunctions>
>(key, mapped); | 357 return m_impl.template add<HashMapTranslator<ValueTraits, HashFunctions>
>(key, mapped); |
358 } | 358 } |
359 | 359 |
360 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> | 360 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> |
361 typename HashMap<T, U, V, W, X, Y>::AddResult | 361 typename HashMap<T, U, V, W, X, Y>::AddResult |
362 HashMap<T, U, V, W, X, Y>::set(KeyPeekInType key, MappedPassInType mapped) | 362 HashMap<T, U, V, W, X, Y>::set(KeyPeekInType key, MappedPassInType mapped) |
363 { | 363 { |
364 AddResult result = inlineAdd(key, mapped); | 364 AddResult result = inlineAdd(key, mapped); |
365 if (!result.isNewEntry) { | 365 if (!result.isNewEntry) { |
366 // The inlineAdd call above found an existing hash table entry; we n
eed to set the mapped value. | 366 // The inlineAdd call above found an existing hash table entry; we n
eed to set the mapped value. |
367 MappedTraits::store(mapped, result.storedValue->value); | 367 MappedTraits::store(mapped, result.storedValue->value); |
368 } | 368 } |
369 return result; | 369 return result; |
370 } | 370 } |
371 | 371 |
372 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> | 372 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> |
373 template<typename HashTranslator, typename TYPE> | 373 template<typename HashTranslator, typename TYPE> |
374 typename HashMap<T, U, V, W, X, Y>::AddResult | 374 typename HashMap<T, U, V, W, X, Y>::AddResult |
375 HashMap<T, U, V, W, X, Y>::add(const TYPE& key, MappedPassInType value) | 375 HashMap<T, U, V, W, X, Y>::add(const TYPE& key, MappedPassInType value) |
376 { | 376 { |
377 return m_impl.template addPassingHashCode<HashMapTranslatorAdapter<Value
Traits, HashTranslator> >(key, value); | 377 return m_impl.template addPassingHashCode<HashMapTranslatorAdapter<Value
Traits, HashTranslator>>(key, value); |
378 } | 378 } |
379 | 379 |
380 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> | 380 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> |
381 typename HashMap<T, U, V, W, X, Y>::AddResult | 381 typename HashMap<T, U, V, W, X, Y>::AddResult |
382 HashMap<T, U, V, W, X, Y>::add(KeyPeekInType key, MappedPassInType mapped) | 382 HashMap<T, U, V, W, X, Y>::add(KeyPeekInType key, MappedPassInType mapped) |
383 { | 383 { |
384 return inlineAdd(key, mapped); | 384 return inlineAdd(key, mapped); |
385 } | 385 } |
386 | 386 |
387 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> | 387 template<typename T, typename U, typename V, typename W, typename X, typenam
e Y> |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
487 vector.resize(collection.size()); | 487 vector.resize(collection.size()); |
488 | 488 |
489 iterator it = collection.begin().values(); | 489 iterator it = collection.begin().values(); |
490 iterator end = collection.end().values(); | 490 iterator end = collection.end().values(); |
491 for (unsigned i = 0; it != end; ++it, ++i) | 491 for (unsigned i = 0; it != end; ++it, ++i) |
492 vector[i] = *it; | 492 vector[i] = *it; |
493 } | 493 } |
494 | 494 |
495 #if !ENABLE(OILPAN) | 495 #if !ENABLE(OILPAN) |
496 template<typename T, typename U, typename V, typename W, typename X> | 496 template<typename T, typename U, typename V, typename W, typename X> |
497 struct NeedsTracing<HashMap<T, U, V, W, X> > { | 497 struct NeedsTracing<HashMap<T, U, V, W, X>> { |
498 static const bool value = false; | 498 static const bool value = false; |
499 }; | 499 }; |
500 #endif | 500 #endif |
501 | 501 |
502 } // namespace WTF | 502 } // namespace WTF |
503 | 503 |
504 using WTF::HashMap; | 504 using WTF::HashMap; |
505 | 505 |
506 #endif /* WTF_HashMap_h */ | 506 #endif /* WTF_HashMap_h */ |
OLD | NEW |