OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
666 static const int magic = 1337; | 666 static const int magic = 1337; |
667 int m_magic; | 667 int m_magic; |
668 | 668 |
669 Bar() | 669 Bar() |
670 : m_magic(magic) | 670 : m_magic(magic) |
671 { | 671 { |
672 s_live++; | 672 s_live++; |
673 } | 673 } |
674 }; | 674 }; |
675 | 675 |
| 676 WILL_NOT_BE_EAGERLY_TRACED(Bar); |
| 677 |
676 unsigned Bar::s_live = 0; | 678 unsigned Bar::s_live = 0; |
677 | 679 |
678 class Baz : public GarbageCollected<Baz> { | 680 class Baz : public GarbageCollected<Baz> { |
679 public: | 681 public: |
680 static Baz* create(Bar* bar) | 682 static Baz* create(Bar* bar) |
681 { | 683 { |
682 return new Baz(bar); | 684 return new Baz(bar); |
683 } | 685 } |
684 | 686 |
685 void trace(Visitor* visitor) | 687 void trace(Visitor* visitor) |
(...skipping 4614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5300 class TraceTypeEagerly7 { }; | 5302 class TraceTypeEagerly7 { }; |
5301 | 5303 |
5302 class TraceTypeNonEagerly1 { }; | 5304 class TraceTypeNonEagerly1 { }; |
5303 WILL_NOT_BE_EAGERLY_TRACED(TraceTypeNonEagerly1); | 5305 WILL_NOT_BE_EAGERLY_TRACED(TraceTypeNonEagerly1); |
5304 | 5306 |
5305 TEST(HeapTest, TraceTypesEagerly) | 5307 TEST(HeapTest, TraceTypesEagerly) |
5306 { | 5308 { |
5307 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly1>::value, ShouldBeTrue); | 5309 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly1>::value, ShouldBeTrue); |
5308 COMPILE_ASSERT(TraceEagerlyTrait<Member<TraceTypeEagerly1>>::value, ShouldBe
True); | 5310 COMPILE_ASSERT(TraceEagerlyTrait<Member<TraceTypeEagerly1>>::value, ShouldBe
True); |
5309 COMPILE_ASSERT(TraceEagerlyTrait<WeakMember<TraceTypeEagerly1>>::value, Shou
ldBeTrue); | 5311 COMPILE_ASSERT(TraceEagerlyTrait<WeakMember<TraceTypeEagerly1>>::value, Shou
ldBeTrue); |
5310 COMPILE_ASSERT(ENABLE_EAGER_TRACING_BY_DEFAULT || !TraceEagerlyTrait<RawPtr<
TraceTypeEagerly1>>::value, ShouldBeTrue); | 5312 COMPILE_ASSERT(TraceEagerlyTrait<RawPtr<TraceTypeEagerly1>>::value == MARKER
_EAGER_TRACING, ShouldBeTrue); |
5311 COMPILE_ASSERT(TraceEagerlyTrait<HeapVector<Member<TraceTypeEagerly1>>>::val
ue, ShouldBeTrue); | 5313 COMPILE_ASSERT(TraceEagerlyTrait<HeapVector<Member<TraceTypeEagerly1>>>::val
ue, ShouldBeTrue); |
5312 COMPILE_ASSERT(TraceEagerlyTrait<HeapVector<WeakMember<TraceTypeEagerly1>>>:
:value, ShouldBeTrue); | 5314 COMPILE_ASSERT(TraceEagerlyTrait<HeapVector<WeakMember<TraceTypeEagerly1>>>:
:value, ShouldBeTrue); |
5313 COMPILE_ASSERT(TraceEagerlyTrait<HeapHashSet<Member<TraceTypeEagerly1>>>::va
lue, ShouldBeTrue); | 5315 COMPILE_ASSERT(TraceEagerlyTrait<HeapHashSet<Member<TraceTypeEagerly1>>>::va
lue, ShouldBeTrue); |
5314 COMPILE_ASSERT(TraceEagerlyTrait<HeapHashSet<Member<TraceTypeEagerly1>>>::va
lue, ShouldBeTrue); | 5316 COMPILE_ASSERT(TraceEagerlyTrait<HeapHashSet<Member<TraceTypeEagerly1>>>::va
lue, ShouldBeTrue); |
5315 using HashMapIntToObj = HeapHashMap<int, Member<TraceTypeEagerly1>>; | 5317 using HashMapIntToObj = HeapHashMap<int, Member<TraceTypeEagerly1>>; |
5316 COMPILE_ASSERT(TraceEagerlyTrait<HashMapIntToObj>::value, ShouldBeTrue); | 5318 COMPILE_ASSERT(TraceEagerlyTrait<HashMapIntToObj>::value, ShouldBeTrue); |
5317 using HashMapObjToInt = HeapHashMap<Member<TraceTypeEagerly1>, int>; | 5319 using HashMapObjToInt = HeapHashMap<Member<TraceTypeEagerly1>, int>; |
5318 COMPILE_ASSERT(TraceEagerlyTrait<HashMapObjToInt>::value, ShouldBeTrue); | 5320 COMPILE_ASSERT(TraceEagerlyTrait<HashMapObjToInt>::value, ShouldBeTrue); |
5319 | 5321 |
5320 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly2>::value, ShouldBeTrue); | 5322 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly2>::value, ShouldBeTrue); |
5321 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly3>::value, ShouldBeTrue); | 5323 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly3>::value, ShouldBeTrue); |
5322 | 5324 |
5323 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly4>::value, ShouldBeTrue); | 5325 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly4>::value, ShouldBeTrue); |
5324 | 5326 |
5325 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly5>::value, ShouldBeTrue); | 5327 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly5>::value, ShouldBeTrue); |
5326 COMPILE_ASSERT(TraceEagerlyTrait<Member<TraceTypeEagerly5>>::value, ShouldBe
True); | 5328 COMPILE_ASSERT(TraceEagerlyTrait<Member<TraceTypeEagerly5>>::value, ShouldBe
True); |
5327 | 5329 |
5328 COMPILE_ASSERT(ENABLE_EAGER_TRACING_BY_DEFAULT || !TraceEagerlyTrait<TraceTy
peEagerly6>::value, ShouldBeTrue); | 5330 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly6>::value == MARKER_EAGER_T
RACING, ShouldBeTrue); |
5329 COMPILE_ASSERT(ENABLE_EAGER_TRACING_BY_DEFAULT || !TraceEagerlyTrait<TraceTy
peEagerly7>::value, ShouldBeTrue); | 5331 COMPILE_ASSERT(TraceEagerlyTrait<TraceTypeEagerly7>::value == MARKER_EAGER_T
RACING, ShouldBeTrue); |
5330 | 5332 |
5331 COMPILE_ASSERT(!TraceEagerlyTrait<TraceTypeNonEagerly1>::value, ShouldBeTrue
); | 5333 COMPILE_ASSERT(!TraceEagerlyTrait<TraceTypeNonEagerly1>::value, ShouldBeTrue
); |
5332 } | 5334 } |
5333 | 5335 |
5334 } // namespace blink | 5336 } // namespace blink |
OLD | NEW |