mirror of https://github.com/nodejs/node.git
deps: backport bc2e393 from v8 upstream
Original commit message: [tools] Make gen-postmortem-metadata.py more reliable Instead of basing matches off of whitespace, walk the inheritance chain and include any classes that inherit from Object. R=machenbach@chromium.org,jkummerow@chromium.org NOTRY=true Review URL: https://codereview.chromium.org/1435643002 Cr-Commit-Position: refs/heads/master@{#31964} This adds some missing classes to postmortem info like JSMap and JSSet. Ref: https://github.com/nodejs/node/pull/3792 PR-URL: https://github.com/nodejs/node/pull/4106 Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com> Reviewed-By: rvagg - Rod Vagg <rod@vagg.org>pull/4158/head
parent
d9d050d396
commit
1e324d883e
|
@ -273,6 +273,20 @@ footer = '''
|
|||
}
|
||||
'''
|
||||
|
||||
#
|
||||
# Get the base class
|
||||
#
|
||||
def get_base_class(klass):
|
||||
if (klass == 'Object'):
|
||||
return klass;
|
||||
|
||||
if (not (klass in klasses)):
|
||||
return None;
|
||||
|
||||
k = klasses[klass];
|
||||
|
||||
return get_base_class(k['parent']);
|
||||
|
||||
#
|
||||
# Loads class hierarchy and type information from "objects.h".
|
||||
#
|
||||
|
@ -311,12 +325,14 @@ def load_objects():
|
|||
typestr += line;
|
||||
continue;
|
||||
|
||||
match = re.match('class (\w[^\s:]*)(: public (\w[^\s{]*))?\s*{',
|
||||
match = re.match('class (\w[^:]*)(: public (\w[^{]*))?\s*{\s*',
|
||||
line);
|
||||
|
||||
if (match):
|
||||
klass = match.group(1);
|
||||
klass = match.group(1).rstrip().lstrip();
|
||||
pklass = match.group(3);
|
||||
if (pklass):
|
||||
pklass = pklass.rstrip().lstrip();
|
||||
klasses[klass] = { 'parent': pklass };
|
||||
|
||||
#
|
||||
|
@ -567,6 +583,9 @@ def emit_config():
|
|||
keys.sort();
|
||||
for klassname in keys:
|
||||
pklass = klasses[klassname]['parent'];
|
||||
bklass = get_base_class(klassname);
|
||||
if (bklass != 'Object'):
|
||||
continue;
|
||||
if (pklass == None):
|
||||
continue;
|
||||
|
||||
|
|
Loading…
Reference in New Issue