Skip to content

Commit

Permalink
deps: backport bc2e393 from v8 upstream
Browse files Browse the repository at this point in the history
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.

PR-URL: #3792
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
  • Loading branch information
evan.lucas authored and Myles Borins committed Jun 1, 2016
1 parent acc1288 commit 1480968
Showing 1 changed file with 21 additions and 2 deletions.
23 changes: 21 additions & 2 deletions deps/v8/tools/gen-postmortem-metadata.py
Expand Up @@ -271,6 +271,20 @@
}
'''

#
# 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".
#
Expand Down Expand Up @@ -309,12 +323,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 };

#
Expand Down Expand Up @@ -565,6 +581,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;

Expand Down

0 comments on commit 1480968

Please sign in to comment.