@@ -263,7 +263,10 @@ func LoadLog(ctx context.Context, config *Config) (*Log, error) {
263
263
}
264
264
edgeTiles [- 1 ] = dataTile
265
265
266
- // Verify the data tile against the level 0 tile.
266
+ // Verify the data tile against the level 0 tile, and build the partial names tile.
267
+ namesTile := edgeTiles [0 ]
268
+ namesTile .L = - 2
269
+ namesTile .B = nil
267
270
b := edgeTiles [- 1 ].B
268
271
start := sunlight .TileWidth * dataTile .N
269
272
for i := start ; i < start + int64 (dataTile .W ); i ++ {
@@ -281,20 +284,17 @@ func LoadLog(ctx context.Context, config *Config) (*Log, error) {
281
284
if got != exp {
282
285
return nil , fmt .Errorf ("tile leaf entry %d hashes to %v, level 0 hash is %v" , i , got , exp )
283
286
}
284
- }
285
287
286
- // Fetch the right-most names tile.
287
- namesTile := edgeTiles [0 ]
288
- namesTile .L = - 2
289
- namesTile .B , err = fetchAndDecompress (ctx , config .Backend , namesTile .Path ())
290
- if err != nil {
291
- // Names tiles are a best effort, and a new feature.
292
- config .Log .ErrorContext (ctx , "couldn't fetch right edge names tile" , "err" , err )
293
- } else {
294
- edgeTiles [- 2 ] = namesTile
295
-
296
- // TODO: Verify the names tile against the data tile.
288
+ if tl , err := e .TrimmedEntry (); err != nil {
289
+ config .Log .ErrorContext (ctx , "failed to trim entry" , "err" , err )
290
+ } else if line , err := json .Marshal (tl ); err != nil {
291
+ config .Log .ErrorContext (ctx , "failed to encode entry for names tile" , "err" , err )
292
+ } else {
293
+ namesTile .B = append (namesTile .B , line ... )
294
+ namesTile .B = append (namesTile .B , '\n' )
295
+ }
297
296
}
297
+ edgeTiles [- 2 ] = namesTile
298
298
}
299
299
for _ , t := range edgeTiles {
300
300
config .Log .DebugContext (ctx , "edge tile" , "tile" , t )
0 commit comments