Author: Valeriy Savchenko
Date: 2020-06-16T13:30:01+03:00
New Revision: dc8a77de7db71dc52b0c75b3bb5437d9ae0ccc8c

URL: 
https://github.com/llvm/llvm-project/commit/dc8a77de7db71dc52b0c75b3bb5437d9ae0ccc8c
DIFF: 
https://github.com/llvm/llvm-project/commit/dc8a77de7db71dc52b0c75b3bb5437d9ae0ccc8c.diff

LOG: [analyzer] ProjectMap: Do not serialize fields with default values

Differential Revision: https://reviews.llvm.org/D81568

Added: 
    

Modified: 
    clang/utils/analyzer/ProjectMap.py

Removed: 
    


################################################################################
diff  --git a/clang/utils/analyzer/ProjectMap.py 
b/clang/utils/analyzer/ProjectMap.py
index 5b15e405d26c..62b7e48fde9b 100644
--- a/clang/utils/analyzer/ProjectMap.py
+++ b/clang/utils/analyzer/ProjectMap.py
@@ -118,4 +118,17 @@ def _save(projects: List[ProjectInfo], path: str):
 
     @staticmethod
     def _convert_infos_to_dicts(projects: List[ProjectInfo]) -> List[JSON]:
-        return [project._asdict() for project in projects]
+        return [ProjectMap._convert_info_to_dict(project)
+                for project in projects]
+
+    @staticmethod
+    def _convert_info_to_dict(project: ProjectInfo) -> JSON:
+        whole_dict = project._asdict()
+        defaults = project._field_defaults
+
+        # there is no need in serializing fields with default values
+        for field, default_value in defaults.items():
+            if whole_dict[field] == default_value:
+                del whole_dict[field]
+
+        return whole_dict


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to