[dart][inspect] Fix bug in Block.nameUtf8

It was returning the entire payload, not truncating to the actual name length.

Test: fx run-host-tests fuchsia_inspect_package_unittests

CF-597 #progress

Change-Id: I35b7da4665f68cf0c7b5c7dafe557d6cd6025fb1
diff --git a/public/dart/fuchsia_inspect/lib/src/vmo/block.dart b/public/dart/fuchsia_inspect/lib/src/vmo/block.dart
index bec39f1..eecd817 100644
--- a/public/dart/fuchsia_inspect/lib/src/vmo/block.dart
+++ b/public/dart/fuchsia_inspect/lib/src/vmo/block.dart
@@ -346,7 +346,8 @@
   @visibleForTesting
   ByteData get nameUtf8 {
     _checkType(BlockType.nameUtf8);
-    return payloadBytes;
+    return ByteData.view(payloadBytes.buffer, payloadBytes.offsetInBytes,
+        _header.read(nameLengthBits));
   }
 
   /// Adds a [BlockType.reserved] block to the head of a [BlockType.extent]
diff --git a/public/dart/fuchsia_inspect/test/vmo/block_test.dart b/public/dart/fuchsia_inspect/test/vmo/block_test.dart
index c95cf27..c504707 100644
--- a/public/dart/fuchsia_inspect/test/vmo/block_test.dart
+++ b/public/dart/fuchsia_inspect/test/vmo/block_test.dart
@@ -242,9 +242,13 @@
 
     test('Becoming a name', () {
       final vmo = FakeVmo(64);
-      Block.create(vmo, 2).becomeName('abc');
+      final block = Block.create(vmo, 2)..becomeName('abc');
       compare(vmo, 32,
           '${hexChar(BlockType.nameUtf8.value)} 1 03 0000 0000 0000 61 62 63');
+      expect(
+          Uint8List.view(
+              block.nameUtf8.buffer, 0, block.nameUtf8.lengthInBytes),
+          Uint8List.fromList([0x61, 0x62, 0x63]));
     });
 
     test('Becoming and setting an extent', () {