[profiler] Revert the root_type field back to uleb128.
authorAlex Rønne Petersen <alpeters@microsoft.com>
Wed, 13 Sep 2017 07:16:40 +0000 (09:16 +0200)
committerAlex Rønne Petersen <alpeters@microsoft.com>
Wed, 13 Sep 2017 07:16:40 +0000 (09:16 +0200)
It's actually a 32-bit value.

mono/profiler/log.c
mono/profiler/log.h
mono/profiler/mprof-report.c

index 4f463c28b951ccbefe112d7063472abd352d3e76..274e1a50fa6fa8a32fd6a2e186d3722e3295574d 100644 (file)
@@ -1219,7 +1219,7 @@ gc_roots (MonoProfiler *prof, MonoObject *const *objects, const MonoProfilerGCRo
 
        for (int i = 0; i < num; ++i) {
                emit_obj (logbuffer, objects [i]);
-               emit_byte (logbuffer, root_types [i]);
+               emit_value (logbuffer, root_types [i]);
                emit_value (logbuffer, extra_info [i]);
        }
 
index d8182d90ee27dfc7d3b266e31124bd7f3dae2baa..f0503e4a4e423f7c9bc43c131d9ba5a3d3537642 100644 (file)
@@ -70,6 +70,7 @@
                class unload events no longer exist (they were never emitted)
                removed type field from TYPE_SAMPLE_HIT
                removed MONO_GC_EVENT_{MARK,RECLAIM}_{START,END}
+               reverted the root_type field back to uleb128
  */
 
 /*
  *     [num_roots: uleb128] number of root references
  *     [num_gc: uleb128] number of major gcs
  *     [object: sleb128] the object as a difference from obj_base
- *     [root_type: byte] the root_type: MonoProfileGCRootType (profiler.h)
+ *     [root_type: uleb128] the root_type: MonoProfileGCRootType (profiler.h)
  *     [extra_info: uleb128] the extra_info value
  *     object, root_type and extra_info are repeated num_roots times
  *
index 4251a164ff56623acb10f147837edbf2b8b0b858..bc9971ad2320defc5c285f651207d8520d236c74 100644 (file)
@@ -2703,7 +2703,7 @@ decode_buffer (ProfContext *ctx)
                                for (i = 0; i < num; ++i) {
                                        intptr_t objdiff = decode_sleb128 (p, &p);
                                        int root_type;
-                                       if (ctx->data_version > 12)
+                                       if (ctx->data_version == 13)
                                                root_type = *p++;
                                        else
                                                root_type = decode_uleb128 (p, &p);