| Index: courgette/third_party/bsdiff/bsdiff_create.cc | 
| diff --git a/courgette/third_party/bsdiff/bsdiff_create.cc b/courgette/third_party/bsdiff/bsdiff_create.cc | 
| index b89c2f1a57a997fef35fdf1d881c9b4a7e29aa94..4b7aeade2b6a6d3c9db7aa82653e443d828225d4 100644 | 
| --- a/courgette/third_party/bsdiff/bsdiff_create.cc | 
| +++ b/courgette/third_party/bsdiff/bsdiff_create.cc | 
| @@ -65,7 +65,18 @@ | 
| #include "courgette/third_party/bsdiff/paged_array.h" | 
| #include "courgette/third_party/bsdiff/qsufsort.h" | 
|  | 
| -namespace courgette { | 
| +namespace { | 
| + | 
| +using courgette::CalculateCrc; | 
| +using courgette::PagedArray; | 
| +using courgette::SinkStream; | 
| +using courgette::SinkStreamSet; | 
| +using courgette::SourceStream; | 
| +using courgette::SourceStreamSet; | 
| + | 
| +}  // namespace | 
| + | 
| +namespace bsdiff { | 
|  | 
| static CheckBool WriteHeader(SinkStream* stream, MBSPatchHeader* header) { | 
| bool ok = stream->Write(header->tag, sizeof(header->tag)); | 
| @@ -165,26 +176,26 @@ BSDiffStatus CreateBinaryPatch(SourceStream* old_stream, | 
| int lastscan = 0, lastpos = 0, lastoffset = 0; | 
|  | 
| int scan = 0; | 
| -  int match_length = 0; | 
| +  SearchResult match(0, 0); | 
|  | 
| while (scan < newsize) { | 
| -    int pos = 0; | 
| int oldscore = 0;  // Count of how many bytes of the current match at |scan| | 
| // extend the match at |lastscan|. | 
| +    match.pos = 0; | 
|  | 
| -    scan += match_length; | 
| +    scan += match.size; | 
| for (int scsc = scan; scan < newsize; ++scan) { | 
| -      match_length = courgette::search<PagedArray<int>&>( | 
| -          I, old, oldsize, newbuf + scan, newsize - scan, &pos); | 
| +      match = search<PagedArray<int>&>( | 
| +          I, old, oldsize, newbuf + scan, newsize - scan); | 
|  | 
| -      for (; scsc < scan + match_length; scsc++) | 
| +      for (; scsc < scan + match.size; scsc++) | 
| if ((scsc + lastoffset < oldsize) && | 
| (old[scsc + lastoffset] == newbuf[scsc])) | 
| oldscore++; | 
|  | 
| -      if ((match_length == oldscore) && (match_length != 0)) | 
| +      if ((match.size == oldscore) && (match.size != 0)) | 
| break;  // Good continuing match, case (1) | 
| -      if (match_length > oldscore + 8) | 
| +      if (match.size > oldscore + 8) | 
| break;  // New seed match, case (2) | 
|  | 
| if ((scan + lastoffset < oldsize) && | 
| @@ -193,7 +204,7 @@ BSDiffStatus CreateBinaryPatch(SourceStream* old_stream, | 
| // Case (3) continues in this loop until we fall out of the loop (4). | 
| } | 
|  | 
| -    if ((match_length != oldscore) || (scan == newsize)) {  // Cases (2) and (4) | 
| +    if ((match.size != oldscore) || (scan == newsize)) {  // Cases (2) and (4) | 
| // This next chunk of code finds the boundary between the bytes to be | 
| // copied as part of the current triple, and the bytes to be copied as | 
| // part of the next triple.  The |lastscan| match is extended forwards as | 
| @@ -206,8 +217,8 @@ BSDiffStatus CreateBinaryPatch(SourceStream* old_stream, | 
| int lenb = 0; | 
| if (scan < newsize) {  // i.e. not case (4); there is a match to extend. | 
| int score = 0, Sb = 0; | 
| -        for (int i = 1; (scan >= lastscan + i) && (pos >= i); i++) { | 
| -          if (old[pos - i] == newbuf[scan - i]) | 
| +        for (int i = 1; (scan >= lastscan + i) && (match.pos >= i); i++) { | 
| +          if (old[match.pos - i] == newbuf[scan - i]) | 
| score++; | 
| if (score * 2 - i > Sb * 2 - lenb) { | 
| Sb = score; | 
| @@ -247,7 +258,7 @@ BSDiffStatus CreateBinaryPatch(SourceStream* old_stream, | 
| old[lastpos + lenf - overlap + i]) { | 
| score++; | 
| } | 
| -          if (newbuf[scan - lenb + i] == old[pos - lenb + i]) { | 
| +          if (newbuf[scan - lenb + i] == old[match.pos - lenb + i]) { | 
| score--; | 
| } | 
| if (score > Ss) { | 
| @@ -284,7 +295,7 @@ BSDiffStatus CreateBinaryPatch(SourceStream* old_stream, | 
|  | 
| uint32_t copy_count = lenf; | 
| uint32_t extra_count = gap; | 
| -      int32_t seek_adjustment = ((pos - lenb) - (lastpos + lenf)); | 
| +      int32_t seek_adjustment = ((match.pos - lenb) - (lastpos + lenf)); | 
|  | 
| if (!control_stream_copy_counts->WriteVarint32(copy_count) || | 
| !control_stream_extra_counts->WriteVarint32(extra_count) || | 
| @@ -300,7 +311,7 @@ BSDiffStatus CreateBinaryPatch(SourceStream* old_stream, | 
| #endif | 
|  | 
| lastscan = scan - lenb;  // Include the backward extension in seed. | 
| -      lastpos = pos - lenb;    //  ditto. | 
| +      lastpos = match.pos - lenb;    //  ditto. | 
| lastoffset = lastpos - lastscan; | 
| } | 
| } | 
| @@ -339,4 +350,4 @@ BSDiffStatus CreateBinaryPatch(SourceStream* old_stream, | 
| return OK; | 
| } | 
|  | 
| -}  // namespace courgette | 
| +}  // namespace bsdiff | 
|  |