diff --git a/audio/utility/audio_frame_operations.cc b/audio/utility/audio_frame_operations.cc
index a9d2cf1..e13a09b 100644
--- a/audio/utility/audio_frame_operations.cc
+++ b/audio/utility/audio_frame_operations.cc
@@ -169,10 +169,10 @@
   if (!frame->muted()) {
     // Up-mixing done in place. Going backwards through the frame ensure nothing
     // is irrevocably overwritten.
+    int16_t* frame_data = frame->mutable_data();
     for (int i = frame->samples_per_channel_ - 1; i >= 0; i--) {
       for (size_t j = 0; j < target_number_of_channels; ++j) {
-        frame->mutable_data()[target_number_of_channels * i + j] =
-            frame->data()[i];
+        frame_data[target_number_of_channels * i + j] = frame_data[i];
       }
     }
   }
diff --git a/modules/audio_mixer/frame_combiner.cc b/modules/audio_mixer/frame_combiner.cc
index e184506..fb6f72a 100644
--- a/modules/audio_mixer/frame_combiner.cc
+++ b/modules/audio_mixer/frame_combiner.cc
@@ -88,13 +88,14 @@
   // Convert to FloatS16 and mix.
   for (size_t i = 0; i < mix_list.size(); ++i) {
     const AudioFrame* const frame = mix_list[i];
+    const int16_t* const frame_data = frame->data();
     for (size_t j = 0; j < std::min(number_of_channels,
                                     FrameCombiner::kMaximumNumberOfChannels);
          ++j) {
       for (size_t k = 0; k < std::min(samples_per_channel,
                                       FrameCombiner::kMaximumChannelSize);
            ++k) {
-        (*mixing_buffer)[j][k] += frame->data()[number_of_channels * k + j];
+        (*mixing_buffer)[j][k] += frame_data[number_of_channels * k + j];
       }
     }
   }
@@ -113,10 +114,11 @@
                             AudioFrame* audio_frame_for_mixing) {
   const size_t number_of_channels = mixing_buffer_view.num_channels();
   const size_t samples_per_channel = mixing_buffer_view.samples_per_channel();
+  int16_t* const mixing_data = audio_frame_for_mixing->mutable_data();
   // Put data in the result frame.
   for (size_t i = 0; i < number_of_channels; ++i) {
     for (size_t j = 0; j < samples_per_channel; ++j) {
-      audio_frame_for_mixing->mutable_data()[number_of_channels * j + i] =
+      mixing_data[number_of_channels * j + i] =
           FloatS16ToS16(mixing_buffer_view.channel(i)[j]);
     }
   }
