Index: mojom/mojom_parser/serialization/serialization.go |
diff --git a/mojom/mojom_parser/serialization/serialization.go b/mojom/mojom_parser/serialization/serialization.go |
index 498f95ab8283a7bee2fd955c9e561b4c83cd20a4..9e13b963b0d7e6fc89e4cf4fe1831e5d0e80f768 100644 |
--- a/mojom/mojom_parser/serialization/serialization.go |
+++ b/mojom/mojom_parser/serialization/serialization.go |
@@ -5,6 +5,9 @@ |
package serialization |
import ( |
+ "bytes" |
+ "compress/gzip" |
+ "encoding/base64" |
"fmt" |
"mojo/public/go/bindings" |
"mojom/mojom_parser/generated/mojom_files" |
@@ -210,11 +213,23 @@ func translateMojomFile(f *mojom.MojomFile, fileGraph *mojom_files.MojomFileGrap |
encoder := bindings.NewEncoder() |
encoder.SetDeterministic(true) |
typeInfo.Encode(encoder) |
- bytes, _, err := encoder.Data() |
+ byteSlice, _, err := encoder.Data() |
if err != nil { |
panic(fmt.Sprintf("Error while serializing runtimeTypeInfo: %s", err.Error())) |
} |
- file.SerializedRuntimeTypeInfo = &bytes |
+ var compressedBytes bytes.Buffer |
+ gzipWriter, _ := gzip.NewWriterLevel(&compressedBytes, gzip.BestCompression) |
+ _, err = gzipWriter.Write(byteSlice) |
+ if err != nil { |
+ panic(fmt.Sprintf("Error while gzipping runtimeTypeInfo: %s", err.Error())) |
+ } |
+ err = gzipWriter.Close() |
+ if err != nil { |
+ panic(fmt.Sprintf("Error while gzipping runtimeTypeInfo: %s", err.Error())) |
+ } |
+ byteSlice = compressedBytes.Bytes() |
+ encoded := base64.StdEncoding.EncodeToString(byteSlice) |
+ file.SerializedRuntimeTypeInfo = &encoded |
} |
return |