From 6fbd72591e8a936f7da43ae95798cd223bf8d537 Mon Sep 17 00:00:00 2001 From: Patrik Nordwall Date: Tue, 31 Jan 2012 08:34:17 +0100 Subject: [PATCH] Review comments. See #1717 --- akka-actor/src/main/scala/akka/actor/Actor.scala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/akka-actor/src/main/scala/akka/actor/Actor.scala b/akka-actor/src/main/scala/akka/actor/Actor.scala index 1e6ea485fc..fd16ed3f39 100644 --- a/akka-actor/src/main/scala/akka/actor/Actor.scala +++ b/akka-actor/src/main/scala/akka/actor/Actor.scala @@ -287,10 +287,9 @@ trait Actor { * For Akka internal use only. */ private[akka] final def apply(msg: Any) = { - msg match { - case msg if behaviorStack.head.isDefinedAt(msg) ⇒ behaviorStack.head.apply(msg) - case unknown ⇒ unhandled(unknown) - } + // TODO would it be more efficient to assume that most messages are matched and catch MatchError instead of using isDefinedAt? + val head = behaviorStack.head + if (head.isDefinedAt(msg)) head.apply(msg) else unhandled(msg) } /** @@ -312,7 +311,8 @@ trait Actor { /** * For Akka internal use only. */ - private[akka] def clearBehaviorStack(): Unit = Stack.empty[Receive].push(behaviorStack.last) + private[akka] def clearBehaviorStack(): Unit = + behaviorStack = Stack.empty[Receive].push(behaviorStack.last) private var behaviorStack: Stack[Receive] = Stack.empty[Receive].push(receive) }