| Index: courgette/encoded_program.cc
 | 
| diff --git a/courgette/encoded_program.cc b/courgette/encoded_program.cc
 | 
| index 59800c50c99d9ec75d7cf2f70994bf9b0b1486c1..968fde63f560dbf69c822c1962e1b76b660dbf33 100644
 | 
| --- a/courgette/encoded_program.cc
 | 
| +++ b/courgette/encoded_program.cc
 | 
| @@ -10,11 +10,11 @@
 | 
|  #include <algorithm>
 | 
|  #include <map>
 | 
|  #include <string>
 | 
| +#include <utility>
 | 
|  #include <vector>
 | 
|  
 | 
|  #include "base/environment.h"
 | 
|  #include "base/logging.h"
 | 
| -#include "base/memory/scoped_ptr.h"
 | 
|  #include "base/numerics/safe_conversions.h"
 | 
|  #include "base/numerics/safe_math.h"
 | 
|  #include "base/strings/string_number_conversions.h"
 | 
| @@ -22,7 +22,6 @@
 | 
|  #include "courgette/courgette.h"
 | 
|  #include "courgette/disassembler_elf_32_arm.h"
 | 
|  #include "courgette/streams.h"
 | 
| -#include "courgette/types_elf.h"
 | 
|  
 | 
|  namespace courgette {
 | 
|  
 | 
| @@ -781,14 +780,15 @@ Status WriteEncodedProgram(EncodedProgram* encoded, SinkStreamSet* sink) {
 | 
|    return C_OK;
 | 
|  }
 | 
|  
 | 
| -Status ReadEncodedProgram(SourceStreamSet* streams, EncodedProgram** output) {
 | 
| -  EncodedProgram* encoded = new EncodedProgram();
 | 
| -  if (encoded->ReadFrom(streams)) {
 | 
| -    *output = encoded;
 | 
| -    return C_OK;
 | 
| -  }
 | 
| -  delete encoded;
 | 
| -  return C_DESERIALIZATION_FAILED;
 | 
| +Status ReadEncodedProgram(SourceStreamSet* streams,
 | 
| +                          scoped_ptr<EncodedProgram>* output) {
 | 
| +  output->reset(nullptr);
 | 
| +  scoped_ptr<EncodedProgram> encoded(new EncodedProgram());
 | 
| +  if (!encoded->ReadFrom(streams))
 | 
| +    return C_DESERIALIZATION_FAILED;
 | 
| +
 | 
| +  *output = std::move(encoded);
 | 
| +  return C_OK;
 | 
|  }
 | 
|  
 | 
|  Status Assemble(EncodedProgram* encoded, SinkStream* buffer) {
 | 
| @@ -798,8 +798,4 @@ Status Assemble(EncodedProgram* encoded, SinkStream* buffer) {
 | 
|    return C_ASSEMBLY_FAILED;
 | 
|  }
 | 
|  
 | 
| -void DeleteEncodedProgram(EncodedProgram* encoded) {
 | 
| -  delete encoded;
 | 
| -}
 | 
| -
 | 
|  }  // namespace courgette
 | 
| 
 |