From 8046649dc5d5ae82cdc178f76300ad42cd52b947 Mon Sep 17 00:00:00 2001 From: gonkc Date: Thu, 1 Jun 2017 13:05:54 +0200 Subject: [PATCH 1/3] Removed inline keyword in cpp files. --- bin/zerobufCxx.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/bin/zerobufCxx.py b/bin/zerobufCxx.py index 3dafb5b..5e86b5d 100755 --- a/bin/zerobufCxx.py +++ b/bin/zerobufCxx.py @@ -15,6 +15,8 @@ import sys from collections import namedtuple, OrderedDict +inline_implementation = False + TypeDescription = namedtuple("TypeDescription", "size cxxtype") DEFAULT_TYPES = {"int" : TypeDescription(4, "int32_t"), "uint" : TypeDescription(4, "uint32_t"), @@ -198,14 +200,24 @@ def write_declaration(self, file): def write_implementation(self, file, classname=None, extra_op = ""): if not self.split_implementation: return - + has_final = re.compile(r" final$").match(self.function) + impl_function = re.sub(r" final$", "", self.function) # remove ' final' keyword impl_function = re.sub(r" = [0-9\.f]+ ", " ", impl_function) # remove default params next_line(file) + + global inline_implementation + if self.ret_val: # '{}'-less body - file.write('{0} {1}{2}\n{{'.format(self.ret_val, - (classname + '::') if classname else '', impl_function)) + add_before_inline = "" + add_after_inline = "" + if inline_implementation is True: + add_before_inline = "inline " if not (self.ret_val.startswith("template<>") or has_final) else "" + add_after_inline = "inline " if self.ret_val.startswith("template<>") and not (has_final) else "" + + file.write('{0}{1} {2}{3}{4}\n{{'.format(add_before_inline, self.ret_val, + add_after_inline, (classname + '::') if classname else '', impl_function)) next_line_indent(file) file.write(self.body) if extra_op: @@ -214,7 +226,10 @@ def write_implementation(self, file, classname=None, extra_op = ""): next_line(file) file.write('}') else: # ctor '[initializer list]{ body }' - file.write('{0}{1}'.format((classname + '::') if classname else '', + add_inline = "" + if inline_implementation is True: + add_inline = "inline " + file.write('{0}{1}{2}'.format(add_inline, (classname + '::') if classname else '', impl_function)) next_line_indent(file) file.write(self.body) From fe9df507a5297bc44e16ccb6af053830b190456f Mon Sep 17 00:00:00 2001 From: Gonzalo Bayo Date: Mon, 5 Jun 2017 11:48:18 +0200 Subject: [PATCH 2/3] Removed inline_implementation global default value, and removed global keyword to only read access. --- bin/zerobufCxx.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/bin/zerobufCxx.py b/bin/zerobufCxx.py index 5e86b5d..56ae7ff 100755 --- a/bin/zerobufCxx.py +++ b/bin/zerobufCxx.py @@ -15,8 +15,6 @@ import sys from collections import namedtuple, OrderedDict -inline_implementation = False - TypeDescription = namedtuple("TypeDescription", "size cxxtype") DEFAULT_TYPES = {"int" : TypeDescription(4, "int32_t"), "uint" : TypeDescription(4, "uint32_t"), @@ -206,8 +204,6 @@ def write_implementation(self, file, classname=None, extra_op = ""): impl_function = re.sub(r" = [0-9\.f]+ ", " ", impl_function) # remove default params next_line(file) - - global inline_implementation if self.ret_val: # '{}'-less body add_before_inline = "" From cb191ffb852b853e0d15111b72b4157c9cdfb5d9 Mon Sep 17 00:00:00 2001 From: Gonzalo Bayo Date: Tue, 6 Jun 2017 12:22:45 +0200 Subject: [PATCH 3/3] Removed inline_implementation explicit comparison against boolean constants. --- bin/zerobufCxx.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/zerobufCxx.py b/bin/zerobufCxx.py index 56ae7ff..6bd57d2 100755 --- a/bin/zerobufCxx.py +++ b/bin/zerobufCxx.py @@ -208,7 +208,7 @@ def write_implementation(self, file, classname=None, extra_op = ""): if self.ret_val: # '{}'-less body add_before_inline = "" add_after_inline = "" - if inline_implementation is True: + if inline_implementation: add_before_inline = "inline " if not (self.ret_val.startswith("template<>") or has_final) else "" add_after_inline = "inline " if self.ret_val.startswith("template<>") and not (has_final) else "" @@ -223,7 +223,7 @@ def write_implementation(self, file, classname=None, extra_op = ""): file.write('}') else: # ctor '[initializer list]{ body }' add_inline = "" - if inline_implementation is True: + if inline_implementation: add_inline = "inline " file.write('{0}{1}{2}'.format(add_inline, (classname + '::') if classname else '', impl_function))