diff --git a/odoo/tools/cloc.py b/odoo/tools/cloc.py index acc1398465e49f4e33b891e4f1bb5e8ef52667b2..762b17006df2fa2e213752075d551c17100c7dff 100644 --- a/odoo/tools/cloc.py +++ b/odoo/tools/cloc.py @@ -22,6 +22,7 @@ DEFAULT_EXCLUDE = [ STANDARD_MODULES = ['web', 'web_enterprise', 'website_animate', 'base'] MAX_FILE_SIZE = 25 * 2**20 # 25 MB +MAX_LINE_SIZE = 100000 class Cloc(object): def __init__(self): @@ -61,6 +62,10 @@ class Cloc(object): # Based on https://stackoverflow.com/questions/241327 s = s.strip() + "\n" total = s.count("\n") + # To avoid to use too much memory we don't try to count file + # with very large line, usually minified file + if max(len(l) for l in s.split('\n')) > MAX_LINE_SIZE: + return -1, "Max line size exceeded" def replacer(match): s = match.group(0) return " " if s.startswith('/') else s