Merge "docs: add toc entry and fix some links"
diff --git a/protos/BUILD b/protos/BUILD
index 1a9a05b..4c280e9 100644
--- a/protos/BUILD
+++ b/protos/BUILD
@@ -54,6 +54,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/common:lite_gen
+java_proto_library(
+    name = "common_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:common",
+    ],
+)
+
 # GN target: //protos/perfetto/common:zero_gen
 proto_library(
     name = "common_zero",
@@ -115,6 +126,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/config:lite_gen
+java_proto_library(
+    name = "config_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:config",
+    ],
+)
+
 # GN target: //protos/perfetto/config:merged_config_gen
 proto_library(
     name = "config_merged_config_gen",
@@ -140,6 +162,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/config:merged_config_gen
+java_proto_library(
+    name = "config_merged_config_gen_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:config_merged_config_gen",
+    ],
+)
+
 # GN target: //protos/perfetto/config:zero_gen
 proto_library(
     name = "config_zero",
@@ -215,6 +248,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/metrics/android:lite_gen
+java_proto_library(
+    name = "metrics_android_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:metrics_android",
+    ],
+)
+
 # GN target: //protos/perfetto/metrics/android:zero_gen
 proto_library(
     name = "metrics_android_zero",
@@ -245,6 +289,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/metrics:lite_gen
+java_proto_library(
+    name = "metrics_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:metrics",
+    ],
+)
+
 # GN target: //protos/perfetto/metrics:zero_gen
 proto_library(
     name = "metrics_zero",
@@ -290,6 +345,17 @@
     ],
 )
 
+# GN target: //protos/third_party/pprof:lite_gen
+java_proto_library(
+    name = "protos_third_party_pprof_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:protos_third_party_pprof",
+    ],
+)
+
 # GN target: //protos/perfetto/trace:lite_gen
 proto_library(
     name = "trace",
@@ -350,6 +416,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/android:lite_gen
+java_proto_library(
+    name = "trace_android_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_android",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/android:zero_gen
 proto_library(
     name = "trace_android_zero",
@@ -408,6 +485,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/chrome:lite_gen
+java_proto_library(
+    name = "trace_chrome_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_chrome",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/chrome:zero_gen
 proto_library(
     name = "trace_chrome_zero",
@@ -455,6 +543,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/filesystem:lite_gen
+java_proto_library(
+    name = "trace_filesystem_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_filesystem",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/filesystem:zero_gen
 proto_library(
     name = "trace_filesystem_zero",
@@ -528,6 +627,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/ftrace:lite_gen
+java_proto_library(
+    name = "trace_ftrace_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_ftrace",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/ftrace:zero_gen
 proto_library(
     name = "trace_ftrace_zero",
@@ -604,6 +714,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/interned_data:lite_gen
+java_proto_library(
+    name = "trace_interned_data_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_interned_data",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/interned_data:zero_gen
 proto_library(
     name = "trace_interned_data_zero",
@@ -624,6 +745,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace:lite_gen
+java_proto_library(
+    name = "trace_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace",
+    ],
+)
+
 # GN target: //protos/perfetto/trace:merged_trace_gen
 proto_library(
     name = "trace_merged_trace_gen",
@@ -649,6 +781,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace:merged_trace_gen
+java_proto_library(
+    name = "trace_merged_trace_gen_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_merged_trace_gen",
+    ],
+)
+
 # GN target: //protos/perfetto/trace:minimal_lite_gen
 proto_library(
     name = "trace_minimal",
@@ -680,6 +823,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace:minimal_lite_gen
+java_proto_library(
+    name = "trace_minimal_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_minimal",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/power:lite_gen
 proto_library(
     name = "trace_power",
@@ -706,6 +860,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/power:lite_gen
+java_proto_library(
+    name = "trace_power_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_power",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/power:zero_gen
 proto_library(
     name = "trace_power_zero",
@@ -751,6 +916,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace_processor:lite_gen
+java_proto_library(
+    name = "trace_processor_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_processor",
+    ],
+)
+
 # GN target: //protos/perfetto/trace_processor:metrics_impl_zero_gen
 proto_library(
     name = "trace_processor_metrics_impl_zero",
@@ -793,6 +969,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/profiling:lite_gen
+java_proto_library(
+    name = "trace_profiling_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_profiling",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/profiling:zero_gen
 proto_library(
     name = "trace_profiling_zero",
@@ -836,6 +1023,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/ps:lite_gen
+java_proto_library(
+    name = "trace_ps_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_ps",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/ps:zero_gen
 proto_library(
     name = "trace_ps_zero",
@@ -882,6 +1080,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/sys_stats:lite_gen
+java_proto_library(
+    name = "trace_sys_stats_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_sys_stats",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/sys_stats:zero_gen
 proto_library(
     name = "trace_sys_stats_zero",
@@ -931,6 +1140,17 @@
     ],
 )
 
+# GN target: //protos/perfetto/trace/track_event:lite_gen
+java_proto_library(
+    name = "trace_track_event_java_proto",
+    visibility = [
+        "//visibility:public",
+    ],
+    deps = [
+        "//third_party/perfetto/protos:trace_track_event",
+    ],
+)
+
 # GN target: //protos/perfetto/trace/track_event:zero_gen
 proto_library(
     name = "trace_track_event_zero",
diff --git a/src/trace_processor/filtered_row_index.cc b/src/trace_processor/filtered_row_index.cc
index f0dbbdf..48c5d3c 100644
--- a/src/trace_processor/filtered_row_index.cc
+++ b/src/trace_processor/filtered_row_index.cc
@@ -16,6 +16,7 @@
 
 #include "src/trace_processor/filtered_row_index.h"
 
+#include <stddef.h>
 #include <numeric>
 
 namespace perfetto {
diff --git a/tools/gen_bazel b/tools/gen_bazel
index cee669f..c430fbe 100755
--- a/tools/gen_bazel
+++ b/tools/gen_bazel
@@ -225,7 +225,7 @@
     assert type in ('cc_binary', 'cc_library', 'cc_proto_library',
                     'proto_library', 'filegroup', 'alias',
                     'pbzero_cc_proto_library', 'genrule',
-                    'transitive_descriptor_set', )
+                    'transitive_descriptor_set', 'java_proto_library' )
     self.type = type
     self.name = name
     self.srcs = set()
@@ -536,6 +536,15 @@
           Label("//third_party/perfetto/protos:" + proto_target.name))
       self.proto_build.add_target(cc_target)
 
+      java_target_name = proto_target.name + "_java_proto"
+      java_target = Target('java_proto_library',
+                           java_target_name,
+                           gn_name=gn_target_name_no_toolchain)
+      java_target.visibility.add("//visibility:public")
+      java_target.deps.add(
+          Label("//third_party/perfetto/protos:" + proto_target.name))
+      self.proto_build.add_target(java_target)
+
     return (proto_target, cc_target)