| Index: tools/telemetry/telemetry/core/heap/retaining_edge.py
|
| diff --git a/tools/telemetry/telemetry/core/heap/retaining_edge.py b/tools/telemetry/telemetry/core/heap/retaining_edge.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d6b9978ce6a12a5d4f287459b665cd42f10d7ab1
|
| --- /dev/null
|
| +++ b/tools/telemetry/telemetry/core/heap/retaining_edge.py
|
| @@ -0,0 +1,52 @@
|
| +# Copyright 2013 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +class RetainingEdge(object):
|
| + """Data structure for representing a retainer relationship between objects.
|
| +
|
| + Attributes:
|
| + from_object_id: int, id of the object which is the start point of this
|
| + RetainingEdge. Used when the corresponding LiveHeapObject object is not
|
| + yet contstructed.
|
| + to_object_id: int, id of the object which is the end point of this
|
| + RetainingEdge. Used when the corresponding LiveHeapObject object is not
|
| + yet contstructed.
|
| + from_object: LiveHeapObject, the start point of this RetainingEdge.
|
| + to_object: LiveHeapObject, the end point of this RetainingEdge.
|
| + type_string: str, the type of the RetainingEdge.
|
| + name_string: str, the JavaScript attribute name this RetainingEdge
|
| + represents.
|
| + """
|
| +
|
| + def __init__(self, from_object_id, to_object_id, type_string, name_string):
|
| + """Initializes the RetainingEdge object.
|
| +
|
| + Args:
|
| + from_object_id: int, id of the object which is the start point of this
|
| + RetainingEdge. Used when the corresponding LiveHeapObject object is
|
| + not yet contstructed.
|
| + to_object_id: int, id of the object which is the end point of this
|
| + RetainingEdge. Used when the corresponding LiveHeapObject object is
|
| + not yet contstructed.
|
| + type_string: str, the type of the RetainingEdge.
|
| + name_string: str, the JavaScript attribute name this RetainingEdge
|
| + represents.
|
| + """
|
| + self.from_object_id = from_object_id
|
| + self.to_object_id = to_object_id
|
| + self.from_object = {}
|
| + self.to_object = {}
|
| + self.type_string = type_string
|
| + self.name_string = name_string
|
| +
|
| + def SetFromObject(self, obj):
|
| + self.from_object = obj
|
| + return self
|
| +
|
| + def SetToObject(self, obj):
|
| + self.to_object = obj
|
| + return self
|
| +
|
| + def __str__(self):
|
| + return 'RetainingEdge(' + self.type_string + ' ' + self.name_string + ')'
|
|
|