Home | History | Annotate | Download | only in memory

Lines Matching refs:arrow

49 struct Arrow {
67 void CreateArrowFromTarget(Arrow** arrow, Target* target) {
72 arrow, target, &completion));
76 void CreateArrowFromArrow(Arrow** arrow, const Arrow* other) {
81 arrow, other, &completion));
93 void CopyAndAssignArrow(Arrow* object) {
102 void CopyAndAssignArrowBase(Arrow* object) {
111 void DeleteArrow(Arrow* object) {
119 Target* DeRef(const Arrow* arrow) {
124 base::Bind(&BackgroundThread::DoDeRef, arrow, &result, &completion));
130 static void DoCreateArrowFromArrow(Arrow** arrow,
131 const Arrow* other,
133 *arrow = new Arrow;
134 **arrow = *other;
138 static void DoCreateArrowFromTarget(Arrow** arrow,
141 *arrow = new Arrow;
142 (*arrow)->target = target->AsWeakPtr();
146 static void DoDeRef(const Arrow* arrow,
149 *result = arrow->target.get();
158 static void DoCopyAndAssignArrow(Arrow* object, WaitableEvent* completion) {
160 Arrow a = *object;
167 Arrow* object,
177 static void DoDeleteArrow(Arrow* object, WaitableEvent* completion) {
303 scoped_ptr<Arrow> arrow(OffThreadObjectCreator<Arrow>::NewObject());
305 arrow->target = target.AsWeakPtr();
306 EXPECT_EQ(&target, arrow->target.get());
322 Arrow* arrow;
325 background.CreateArrowFromTarget(&arrow, target);
326 EXPECT_EQ(background.DeRef(arrow), target);
331 Arrow arrow;
332 arrow.target = target->AsWeakPtr();
335 EXPECT_EQ(target, background.DeRef(&arrow));
340 background.DeleteArrow(arrow);
347 Arrow* arrow;
351 background.CreateArrowFromTarget(&arrow, &target);
354 EXPECT_EQ(&target, background.DeRef(arrow));
357 arrow->target.reset();
360 arrow->target = target.AsWeakPtr();
363 EXPECT_EQ(&target, arrow->target.get());
368 delete arrow;
375 Arrow arrow;
379 arrow.target = target->factory.GetWeakPtr();
380 EXPECT_EQ(target.get(), arrow.target.get());
383 EXPECT_EQ(NULL, arrow.target.get());
385 arrow.target = target->factory.GetWeakPtr();
387 EXPECT_EQ(target.get(), background.DeRef(&arrow));
403 Arrow arrow;
404 arrow.target = target.AsWeakPtr();
406 Arrow* arrow_copy;
407 background.CreateArrowFromArrow(&arrow_copy, &arrow);
421 Arrow* arrow_copy;
423 Arrow arrow;
424 arrow.target = target.AsWeakPtr();
425 background.CreateArrowFromArrow(&arrow_copy, &arrow);
439 Arrow* arrow_copy;
442 Arrow arrow;
443 arrow.target = target.AsWeakPtr();
444 background.CreateArrowFromArrow(&arrow_copy, &arrow);
453 // Main thread creates an arrow referencing the Target.
454 Arrow *arrow = new Arrow();
455 arrow->target = target.AsWeakPtr();
457 // Background can copy and assign arrow (as well as the WeakPtr inside).
460 background.CopyAndAssignArrow(arrow);
461 background.DeleteArrow(arrow);
467 // Main thread creates an arrow referencing the Target.
468 Arrow *arrow = new Arrow();
469 arrow->target = target.AsWeakPtr();
471 // Background can copy and assign arrow's WeakPtr to a base class WeakPtr.
474 background.CopyAndAssignArrowBase(arrow);
475 background.DeleteArrow(arrow);
481 // Main thread creates an arrow referencing the Target.
482 Arrow* arrow = new Arrow();
483 arrow->target = target.AsWeakPtr();
485 // Background can delete arrow (as well as the WeakPtr inside).
488 background.DeleteArrow(arrow);
503 // Main thread creates an arrow referencing the Target.
504 Arrow arrow;
505 arrow.target = target.AsWeakPtr();
508 Arrow* arrow_copy;
509 background.CreateArrowFromArrow(&arrow_copy, &arrow);
512 EXPECT_EQ(arrow.target.get(), arrow_copy->target.get());
529 // Main thread creates an arrow referencing the Target (so target's
531 Arrow arrow;
532 arrow.target = target.AsWeakPtr();
533 arrow.target.get();
538 ASSERT_DEATH(background.DeRef(&arrow), "");
548 // Main thread creates an arrow referencing the Target.
549 Arrow arrow;
550 arrow.target = target->AsWeakPtr();
555 background.DeRef(&arrow);
572 // Main thread creates an arrow referencing the Target, and references it, so
574 Arrow arrow;
575 arrow.target = target->AsWeakPtr();
576 arrow.target.get();
591 // Main thread creates an arrow referencing the Target.
592 Arrow arrow;
593 arrow.target = target->AsWeakPtr();
601 ASSERT_DEATH(arrow.target.get(), "");