diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-07-01 02:10:02 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-07-01 02:10:02 +0300 |
commit | ad3dc937f11af894576032dcad4fb88042bdf253 (patch) | |
tree | 14a055d9b4cf26c9d5fe193e6b676ccfc00ca772 /mesonbuild/build.py | |
parent | ecde592b86e9c25fc82a612085761c4825017841 (diff) | |
download | meson-ad3dc937f11af894576032dcad4fb88042bdf253.zip meson-ad3dc937f11af894576032dcad4fb88042bdf253.tar.gz meson-ad3dc937f11af894576032dcad4fb88042bdf253.tar.bz2 |
Fix remaining Interpreter object leaks.
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r-- | mesonbuild/build.py | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 9dd0fa0..a797e9f 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -546,10 +546,14 @@ class BuildTarget(Target): d = [d] newd = [] for i in d: - if hasattr(i, 'held_object'): - newd.append(i.held_object) - else: - newd.append(i) + if isinstance(i, list): + i = self.unpack_holder(i) + elif hasattr(i, 'held_object'): + i = i.held_object + for t in ['dependencies', 'link_with', 'include_directories', 'sources']: + if hasattr(i, t): + setattr(i, t, self.unpack_holder(getattr(i, t))) + newd.append(i) return newd def copy_kwargs(self, kwargs): @@ -557,10 +561,14 @@ class BuildTarget(Target): # This sucks quite badly. Arguments # are holders but they can't be pickled # so unpack those known. - if 'dependencies' in self.kwargs: - self.kwargs['dependencies'] = self.unpack_holder(self.kwargs['dependencies']) - if 'link_with' in self.kwargs: - self.kwargs['link_with'] = self.unpack_holder(self.kwargs['link_with']) + for k, v in self.kwargs.items(): + if isinstance(v, list): + self.kwargs[k] = self.unpack_holder(v) + if hasattr(v, 'held_object'): + self.kwargs[k] = v.held_object + for t in ['dependencies', 'link_with', 'include_directories', 'sources']: + if t in self.kwargs: + self.kwargs[t] = self.unpack_holder(self.kwargs[t]) def extract_objects(self, srclist): obj_src = [] |