Change bool, and string properties to *bool, and *string for java,
python, and genrule.

Test: m -j checkbuild
Bug: b/68853585
Change-Id: Ic9a8083818e920dc399a4b00841e2aa496f70faa
diff --git a/python/python.go b/python/python.go
index 1b146a8..9d6d6a7 100644
--- a/python/python.go
+++ b/python/python.go
@@ -65,7 +65,7 @@
 	// (from a.b.c import ...) statement.
 	// if left unspecified, all the source/data files of current module are copied to
 	// "runfiles/" tree directory directly.
-	Pkg_path string `android:"arch_variant"`
+	Pkg_path *string `android:"arch_variant"`
 
 	// true, if the Python module is used internally, eg, Python std libs.
 	Is_internal *bool `android:"arch_variant"`
@@ -367,14 +367,14 @@
 	expandedData := ctx.ExpandSources(p.properties.Data, nil)
 
 	// sanitize pkg_path.
-	pkg_path := p.properties.Pkg_path
+	pkg_path := String(p.properties.Pkg_path)
 	if pkg_path != "" {
-		pkg_path = filepath.Clean(p.properties.Pkg_path)
+		pkg_path = filepath.Clean(String(p.properties.Pkg_path))
 		if pkg_path == ".." || strings.HasPrefix(pkg_path, "../") ||
 			strings.HasPrefix(pkg_path, "/") {
 			ctx.PropertyErrorf("pkg_path",
 				"%q must be a relative path contained in par file.",
-				p.properties.Pkg_path)
+				String(p.properties.Pkg_path))
 			return
 		}
 		if p.properties.Is_internal != nil && *p.properties.Is_internal {
@@ -557,3 +557,6 @@
 
 	return true
 }
+
+var Bool = proptools.Bool
+var String = proptools.String