Make ServletScopes#scopeRequest slightly more efficient for larger seed maps.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=61542674
diff --git a/extensions/servlet/src/com/google/inject/servlet/ServletScopes.java b/extensions/servlet/src/com/google/inject/servlet/ServletScopes.java
index 5acf653..cd593bf 100644
--- a/extensions/servlet/src/com/google/inject/servlet/ServletScopes.java
+++ b/extensions/servlet/src/com/google/inject/servlet/ServletScopes.java
@@ -19,6 +19,7 @@
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
+import com.google.common.collect.Maps.EntryTransformer;
 import com.google.inject.Binding;
 import com.google.inject.Injector;
 import com.google.inject.Key;
@@ -326,10 +327,13 @@
 
     // Copy the seed values into our local scope map.
     final Context context = new Context();
-    for (Map.Entry<Key<?>, Object> entry : seedMap.entrySet()) {
-      Object value = validateAndCanonicalizeValue(entry.getKey(), entry.getValue());
-      context.map.put(entry.getKey(), value);
-    }
+    Map<Key<?>, Object> validatedAndCanonicalizedMap =
+        Maps.transformEntries(seedMap, new EntryTransformer<Key<?>, Object, Object>() {
+          @Override public Object transformEntry(Key<?> key, Object value) {
+            return validateAndCanonicalizeValue(key, value);
+          }
+        });
+    context.map.putAll(validatedAndCanonicalizedMap);
 
     return new Callable<T>() {
       public T call() throws Exception {