diff options
author | 2016-01-13 18:41:24 +0000 | |
---|---|---|
committer | 2016-01-14 09:53:17 +0000 | |
commit | ee624453d9f5dd908d721abb4663246c70bf4509 (patch) | |
tree | ba90c489d6fb079438a8015f786fc3c9f1cad0c3 /src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java | |
parent | 3d9441bb4fc224c6551f5063d2a5d2c84a76e3e8 (diff) |
For native rule classes, (de)serialize only explicit attrs
Native rule classes can provide default values for rules after they're
deserialized, so there isn't a need to serialize those default values.
This doesn't apply yet to rules with Skylark-defined rule classes, due
to the non-serializablity of Skylark rule classes.
--
MOS_MIGRATED_REVID=112066930
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java index ba9111c375..1de065eed8 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java +++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java @@ -32,6 +32,7 @@ import com.google.devtools.build.lib.events.StoredEventHandler; import com.google.devtools.build.lib.packages.GlobCache.BadGlobException; import com.google.devtools.build.lib.packages.License.DistributionType; import com.google.devtools.build.lib.packages.Preprocessor.AstAfterPreprocessing; +import com.google.devtools.build.lib.packages.RuleFactory.BuildLangTypedAttributeValuesMap; import com.google.devtools.build.lib.skylarkinterface.SkylarkSignature; import com.google.devtools.build.lib.skylarkinterface.SkylarkSignature.Param; import com.google.devtools.build.lib.syntax.AssignmentStatement; @@ -923,7 +924,8 @@ public final class PackageFactory { Environment env) throws RuleFactory.InvalidRuleException, Package.NameConflictException, InterruptedException { RuleClass ruleClass = getBuiltInRuleClass(ruleClassName, ruleFactory); - RuleFactory.createAndAddRule(context, ruleClass, kwargs, ast, env); + BuildLangTypedAttributeValuesMap attributeValues = new BuildLangTypedAttributeValuesMap(kwargs); + RuleFactory.createAndAddRule(context, ruleClass, attributeValues, ast, env); } private static RuleClass getBuiltInRuleClass(String ruleClassName, RuleFactory ruleFactory) { |