Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f46f315a authored by Colin Cross's avatar Colin Cross Committed by android-build-merger
Browse files

Merge "Support go 1.12" am: bb3deefa am: 930ae2f7

am: 318c318f

Change-Id: I512af0e859af2b0c4bd690e3224488f05e05b0a5
parents 2e10ea39 318c318f
Loading
Loading
Loading
Loading
+13 −18
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@
package android

import (
	"fmt"
	"regexp"
	"runtime"
	"sort"
	"strings"
@@ -164,12 +166,17 @@ func checkCalledFromInit() {
			panic("not called from an init func")
		}

		if funcName == "init" || strings.HasPrefix(funcName, "init·") {
		if funcName == "init" || strings.HasPrefix(funcName, "init·") ||
			strings.HasPrefix(funcName, "init.") {
			return
		}
	}
}

// A regex to find a package path within a function name. It finds the shortest string that is
// followed by '.' and doesn't have any '/'s left.
var pkgPathRe = regexp.MustCompile(`^(.*?)\.([^/]+)$`)

// callerName returns the package path and function name of the calling
// function.  The skip argument has the same meaning as the skip argument of
// runtime.Callers.
@@ -180,25 +187,13 @@ func callerName(skip int) (pkgPath, funcName string, ok bool) {
		return "", "", false
	}

	f := runtime.FuncForPC(pc[0])
	fullName := f.Name()

	lastDotIndex := strings.LastIndex(fullName, ".")
	if lastDotIndex == -1 {
		panic("unable to distinguish function name from package")
	f := runtime.FuncForPC(pc[0]).Name()
	s := pkgPathRe.FindStringSubmatch(f)
	if len(s) < 3 {
		panic(fmt.Errorf("failed to extract package path and function name from %q", f))
	}

	if fullName[lastDotIndex-1] == ')' {
		// The caller is a method on some type, so it's name looks like
		// "pkg/path.(type).method".  We need to go back one dot farther to get
		// to the package name.
		lastDotIndex = strings.LastIndex(fullName[:lastDotIndex], ".")
	}

	pkgPath = fullName[:lastDotIndex]
	funcName = fullName[lastDotIndex+1:]
	ok = true
	return
	return s[1], s[2], true
}

func GetNumericSdkVersion(v string) string {