| Index: courgette/encode_decode_unittest.cc | 
| diff --git a/courgette/encode_decode_unittest.cc b/courgette/encode_decode_unittest.cc | 
| index 9e89c20e138688fee99cb9b62a9653a3790069b7..7494785b34abf7b4d45ce7c399fa9a497bfe4769 100644 | 
| --- a/courgette/encode_decode_unittest.cc | 
| +++ b/courgette/encode_decode_unittest.cc | 
| @@ -4,8 +4,12 @@ | 
|  | 
| #include <stddef.h> | 
|  | 
| +#include "base/memory/scoped_ptr.h" | 
| +#include "courgette/assembly_program.h" | 
| #include "courgette/base_test_unittest.h" | 
| #include "courgette/courgette.h" | 
| +#include "courgette/encoded_program.h" | 
| +#include "courgette/program_detector.h" | 
| #include "courgette/streams.h" | 
|  | 
| class EncodeDecodeTest : public BaseTest { | 
| @@ -20,25 +24,25 @@ void EncodeDecodeTest::TestAssembleToStreamDisassemble( | 
| const void* original_buffer = file.c_str(); | 
| size_t original_length = file.length(); | 
|  | 
| -  courgette::AssemblyProgram* program = NULL; | 
| +  scoped_ptr<courgette::AssemblyProgram> program; | 
| const courgette::Status parse_status = | 
| courgette::ParseDetectedExecutable(original_buffer, | 
| original_length, | 
| &program); | 
| EXPECT_EQ(courgette::C_OK, parse_status); | 
|  | 
| -  courgette::EncodedProgram* encoded = NULL; | 
| - | 
| -  const courgette::Status encode_status = Encode(program, &encoded); | 
| +  scoped_ptr<courgette::EncodedProgram> encoded; | 
| +  const courgette::Status encode_status = Encode(*program, &encoded); | 
| EXPECT_EQ(courgette::C_OK, encode_status); | 
|  | 
| -  DeleteAssemblyProgram(program); | 
| +  program.reset(); | 
|  | 
| courgette::SinkStreamSet sinks; | 
| -  const courgette::Status write_status = WriteEncodedProgram(encoded, &sinks); | 
| +  const courgette::Status write_status = | 
| +      WriteEncodedProgram(encoded.get(), &sinks); | 
| EXPECT_EQ(courgette::C_OK, write_status); | 
|  | 
| -  DeleteEncodedProgram(encoded); | 
| +  encoded.reset(); | 
|  | 
| courgette::SinkStream sink; | 
| bool can_collect = sinks.CopyTo(&sink); | 
| @@ -53,21 +57,22 @@ void EncodeDecodeTest::TestAssembleToStreamDisassemble( | 
| bool can_get_source_streams = sources.Init(buffer, length); | 
| EXPECT_TRUE(can_get_source_streams); | 
|  | 
| -  courgette::EncodedProgram *encoded2 = NULL; | 
| +  scoped_ptr<courgette::EncodedProgram> encoded2; | 
| const courgette::Status read_status = ReadEncodedProgram(&sources, &encoded2); | 
| EXPECT_EQ(courgette::C_OK, read_status); | 
|  | 
| courgette::SinkStream assembled; | 
| -  const courgette::Status assemble_status = Assemble(encoded2, &assembled); | 
| +  const courgette::Status assemble_status = | 
| +      Assemble(encoded2.get(), &assembled); | 
| EXPECT_EQ(courgette::C_OK, assemble_status); | 
|  | 
| +  encoded2.reset(); | 
| + | 
| const void* assembled_buffer = assembled.Buffer(); | 
| size_t assembled_length = assembled.Length(); | 
|  | 
| EXPECT_EQ(original_length, assembled_length); | 
| EXPECT_EQ(0, memcmp(original_buffer, assembled_buffer, original_length)); | 
| - | 
| -  DeleteEncodedProgram(encoded2); | 
| } | 
|  | 
| TEST_F(EncodeDecodeTest, PE) { | 
|  |