Index: cc/surfaces/surface_aggregator.cc |
diff --git a/cc/surfaces/surface_aggregator.cc b/cc/surfaces/surface_aggregator.cc |
index d60a2172b5dffe0e51b100b7b9c74b84dd3f054d..9901d002a0e87c937da07d3d42c64ca58f03b96c 100644 |
--- a/cc/surfaces/surface_aggregator.cc |
+++ b/cc/surfaces/surface_aggregator.cc |
@@ -526,7 +526,16 @@ |
ResourceProvider::ResourceIdSet referenced_resources; |
size_t reserve_size = frame_data->resource_list.size(); |
+#if defined(COMPILER_MSVC) |
referenced_resources.reserve(reserve_size); |
+#elif defined(COMPILER_GCC) |
+ // Pre-standard hash-tables only implement resize, which behaves similarly |
+ // to reserve for these keys. Resizing to 0 may also be broken (particularly |
+ // on stlport). |
+ // TODO(jbauman): Replace with reserve when C++11 is supported everywhere. |
+ if (reserve_size) |
+ referenced_resources.resize(reserve_size); |
+#endif |
bool invalid_frame = false; |
ResourceProvider::ResourceIdMap empty_map; |