]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: remove init func reference to ServeMux
authorBrad Fitzpatrick <bradfitz@golang.org>
Wed, 16 Mar 2016 20:14:13 +0000 (20:14 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 16 Mar 2016 21:11:21 +0000 (21:11 +0000)
Shrinks cmd/go by 30KB.

Change-Id: Ied31192e85af76ebac743f8cc12bd9ef6ec5048f
Reviewed-on: https://go-review.googlesource.com/20765
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>

src/net/http/http_test.go
src/net/http/server.go

index 3267d478eea51d8cfa0af5c0800db98a1dcec620..7fd3181f6f29912ecd00999c5cf632af6feb6ae4 100644 (file)
@@ -84,8 +84,10 @@ func TestCmdGoNoHTTPServer(t *testing.T) {
                "net/http.(*Transport).RoundTrip": true,
 
                // Verify these don't exist:
-               "net/http.http2Server":     false,
-               "net/http.(*Server).Serve": false,
+               "net/http.http2Server":           false,
+               "net/http.(*Server).Serve":       false,
+               "net/http.(*ServeMux).ServeHTTP": false,
+               "net/http.DefaultServeMux":       false,
        }
        for sym, want := range wantSym {
                got := bytes.Contains(out, []byte(sym))
index 3834630a595b71f1f362f1f11695fa911c3b7f53..17c2890aa7b3511caf331f15a86088d880c58186 100644 (file)
@@ -1800,10 +1800,12 @@ type muxEntry struct {
 }
 
 // NewServeMux allocates and returns a new ServeMux.
-func NewServeMux() *ServeMux { return &ServeMux{m: make(map[string]muxEntry)} }
+func NewServeMux() *ServeMux { return new(ServeMux) }
 
 // DefaultServeMux is the default ServeMux used by Serve.
-var DefaultServeMux = NewServeMux()
+var DefaultServeMux = &defaultServeMux
+
+var defaultServeMux ServeMux
 
 // Does path match pattern?
 func pathMatch(pattern, path string) bool {
@@ -1926,6 +1928,9 @@ func (mux *ServeMux) Handle(pattern string, handler Handler) {
                panic("http: multiple registrations for " + pattern)
        }
 
+       if mux.m == nil {
+               mux.m = make(map[string]muxEntry)
+       }
        mux.m[pattern] = muxEntry{explicit: true, h: handler, pattern: pattern}
 
        if pattern[0] != '/' {