Repository: lucy-clownfish
Updated Branches:
  refs/heads/0.5 f30e0281c -> 6a70a65d0


Ignore classes from outdated .cfh files

If Clownfish 0.5 is installed over Clownfish 0.4, a couple of old .cfh
files like VArray.cfh and LockFreeRegistry.cfh remain. These files are
processed by CFC which means that C headers are created for them, for
example. This is mostly harmless and will be fixed later when we start
to install .cfh files into separate directories. The only real
showstopper is that the build breaks when examining the Clownfish binary
for host-specific data like method aliases. This is fixed by ignoring
classes that aren't found in the binary.

Fixes CLOWNFISH-89.


Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/6a70a65d
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/6a70a65d
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/6a70a65d

Branch: refs/heads/0.5
Commit: 6a70a65d0d6b039d3d5f2f93661a411fd09a189d
Parents: f30e028
Author: Nick Wellnhofer <[email protected]>
Authored: Wed Apr 6 15:42:25 2016 +0200
Committer: Nick Wellnhofer <[email protected]>
Committed: Wed Apr 6 15:53:42 2016 +0200

----------------------------------------------------------------------
 compiler/perl/lib/Clownfish/CFC.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/6a70a65d/compiler/perl/lib/Clownfish/CFC.pm
----------------------------------------------------------------------
diff --git a/compiler/perl/lib/Clownfish/CFC.pm 
b/compiler/perl/lib/Clownfish/CFC.pm
index e5df9e0..18b5cb3 100644
--- a/compiler/perl/lib/Clownfish/CFC.pm
+++ b/compiler/perl/lib/Clownfish/CFC.pm
@@ -268,7 +268,7 @@ BEGIN { XSLoader::load( 'Clownfish::CFC', '0.5.0' ) }
 
             my $class_name = $class->get_name;
             my $rt_class = Clownfish::Class->fetch_class($class_name)
-                or die("Class $class_name not found");
+                or next;
 
             for my $rt_method (@{ $rt_class->get_methods }) {
                 if ($rt_method->is_excluded_from_host) {

Reply via email to