Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(278)

Delta Between Two Patch Sets: src/pkg/strings/export_test.go

Issue 6492076: code review 6492076: strings: implement a faster generic Replacer (Closed)
Left Patch Set: diff -r 46a4f787e8b7 https://code.google.com/p/go Created 11 years, 6 months ago
Right Patch Set: diff -r cdee8bf43694 https://code.google.com/p/go Created 11 years, 6 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « no previous file | src/pkg/strings/replace.go » ('j') | src/pkg/strings/replace.go » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 // Copyright 2011 The Go Authors. All rights reserved. 1 // Copyright 2011 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style 2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file. 3 // license that can be found in the LICENSE file.
4 4
5 package strings 5 package strings
6 6
7 func (r *Replacer) Replacer() interface{} { 7 func (r *Replacer) Replacer() interface{} {
8 return r.r 8 return r.r
9 } 9 }
10 10
11 func (r *Replacer) PrintTrie() string { 11 func (r *Replacer) PrintTrie() string {
12 gen := r.r.(*genericReplacer) 12 gen := r.r.(*genericReplacer)
13 » return gen.printNode(gen.root, 0) 13 » return gen.printNode(&gen.root, 0)
14 } 14 }
15 15
16 func (r *genericReplacer) printNode(t *trie, depth int) (s string) { 16 func (r *genericReplacer) printNode(t *trieNode, depth int) (s string) {
17 if t.priority > 0 { 17 if t.priority > 0 {
18 s += "+" 18 s += "+"
19 } else { 19 } else {
20 s += "-" 20 s += "-"
21 } 21 }
22 s += "\n" 22 s += "\n"
23 23
24 if t.prefix != "" { 24 if t.prefix != "" {
25 s += Repeat(".", depth) + t.prefix 25 s += Repeat(".", depth) + t.prefix
26 s += r.printNode(t.next, depth+len(t.prefix)) 26 s += r.printNode(t.next, depth+len(t.prefix))
27 } else if t.table != nil { 27 } else if t.table != nil {
28 for b, m := range r.mapping { 28 for b, m := range r.mapping {
29 » » » index := int(m) 29 » » » if int(m) != r.tableSize && t.table[m] != nil {
30 » » » if index != r.tableSize && t.table[index] != nil {
31 s += Repeat(".", depth) + string([]byte{byte(b)} ) 30 s += Repeat(".", depth) + string([]byte{byte(b)} )
32 » » » » s += r.printNode(t.table[index], depth+1) 31 » » » » s += r.printNode(t.table[m], depth+1)
33 } 32 }
34 } 33 }
35 } 34 }
36 return 35 return
37 } 36 }
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b