mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-13 23:17:57 +00:00
1b17519a11
This changes the allocation API, in the following way: js_malloc -> {cx->,rt->,OffTheBooks::}malloc js_calloc -> {cx->,rt->,OffTheBooks::}calloc js_realloc -> {cx->,rt->,OffTheBooks::}realloc js_free -> {cx->,rt->,Foreground::,UnwantedForeground::}free js_new -> {cx->,rt->,OffTheBooks::}new_ js_new_array -> {cx->,rt->,OffTheBooks::}new_array js_delete -> {cx->,rt->,Foreground::,UnwantedForeground::}delete_ This is to move as many allocations as possible through a JSContext (so that they may be aken into account by gcMallocBytes) and to move as many deallocations to the background as possible (except on error paths).
45 lines
1.6 KiB
Python
Executable File
45 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
# Usage: check_source_count.py SEARCH_TERM COUNT ERROR_LOCATION REPLACEMENT [FILES...]
|
|
# Checks that FILES contains exactly COUNT matches of SEARCH_TERM. If it does
|
|
# not, an error message is printed, quoting ERROR_LOCATION, which should
|
|
# probably be the filename and line number of the erroneous call to
|
|
# check_source_count.py.
|
|
|
|
import sys
|
|
import os
|
|
import re
|
|
|
|
search_string = sys.argv[1]
|
|
expected_count = int(sys.argv[2])
|
|
error_location = sys.argv[3]
|
|
replacement = sys.argv[4]
|
|
files = sys.argv[5:]
|
|
|
|
details = {}
|
|
|
|
count = 0
|
|
for f in files:
|
|
text = file(f).read()
|
|
match = re.findall(search_string, text)
|
|
if match:
|
|
num = len(match)
|
|
count += num
|
|
details[f] = num
|
|
|
|
if count == expected_count:
|
|
print "TEST-PASS | check_source_count.py %s | %d" % (search_string, expected_count)
|
|
|
|
else:
|
|
print "TEST-UNEXPECTED-FAIL | check_source_count.py %s | " % (search_string),
|
|
if count < expected_count:
|
|
print "There are less occurences of /%s/ than expected. This may mean that you have removed some, but forgotten to account for it %s." % (search_string, error_location)
|
|
else:
|
|
print "There are more occurences of /%s/ than expected. We're trying to prevent an increase in the number of %s's, using %s if possible. If it in unavoidable, you should update the expected count %s." % (search_string, search_string, replacement, error_location)
|
|
|
|
print "Expected: %d; found: %d" % (expected_count, count)
|
|
for k in sorted(details):
|
|
print "Found %d occurences in %s" % (details[k],k)
|
|
sys.exit(-1)
|
|
|