diff options
author | Andrey Ponomarenko <aponomarenko@odin.com> | 2015-11-11 12:57:44 +0300 |
---|---|---|
committer | Andrey Ponomarenko <aponomarenko@odin.com> | 2015-11-11 12:57:44 +0300 |
commit | 1b597c3d39a3d4c9ae37f618a0db277021d56c95 (patch) | |
tree | 3b80f3ac30967a9b58001c7629c62ac462734bf2 | |
parent | 99640d301c76bbdcf86803858ed9190d3f249133 (diff) | |
download | abi-compliance-checker-1b597c3d39a3d4c9ae37f618a0db277021d56c95.tar.gz |
Fixed hang on some template instances.
-rw-r--r-- | INSTALL | 4 | ||||
-rw-r--r-- | abi-compliance-checker.pl | 23 | ||||
-rw-r--r-- | doc/Changelog.html | 9 | ||||
-rw-r--r-- | doc/index.html | 2 |
4 files changed, 28 insertions, 10 deletions
@@ -9,8 +9,8 @@ All rights reserved. RELEASE INFORMATION Project: ABI Compliance Checker (ACC) -Version: 1.99.14 -Date: 2015-11-01 +Version: 1.99.14.1 +Date: 2015-11-11 This file explains how to install and setup environment diff --git a/abi-compliance-checker.pl b/abi-compliance-checker.pl index 708cdd8..dcc2747 100644 --- a/abi-compliance-checker.pl +++ b/abi-compliance-checker.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl ########################################################################### -# ABI Compliance Checker (ABICC) 1.99.14 +# ABI Compliance Checker (ABICC) 1.99.14.1 # A tool for checking backward compatibility of a C/C++ library API # # Copyright (C) 2009-2011 Institute for System Programming, RAS @@ -64,7 +64,7 @@ use Storable qw(dclone); use Data::Dumper; use Config; -my $TOOL_VERSION = "1.99.14"; +my $TOOL_VERSION = "1.99.14.1"; my $ABI_DUMP_VERSION = "3.2"; my $XML_REPORT_VERSION = "1.2"; my $XML_ABI_DUMP_VERSION = "1.2"; @@ -2396,7 +2396,8 @@ sub getTypeInfo_All() { my $NBid = instType($TemplateMap{$Version}{$Tid}, $Bid, $Version); - if($NBid ne $Bid) + if($NBid ne $Bid + and $NBid ne $Tid) { %{$TypeInfo{$Version}{$Tid}{"Base"}{$NBid}} = %{$TypeInfo{$Version}{$Tid}{"Base"}{$Bid}}; delete($TypeInfo{$Version}{$Tid}{"Base"}{$Bid}); @@ -2511,7 +2512,8 @@ sub instType($$$) { my $NBid = instType(\%EMap, $Bid, $LibVersion); - if($NBid ne $Bid) + if($NBid ne $Bid + and $NBid ne $New) { %{$TypeInfo{$LibVersion}{$New}{"Base"}{$NBid}} = %{$TypeInfo{$LibVersion}{$New}{"Base"}{$Bid}}; delete($TypeInfo{$LibVersion}{$New}{"Base"}{$Bid}); @@ -4104,7 +4106,7 @@ sub setBaseClasses($$) my ($Access, $BInfoId) = ($1, $2); my $ClassId = getBinfClassId($BInfoId); - if($ClassId==$TypeId) + if($ClassId eq $TypeId) { # class A<N>:public A<N-1> next; } @@ -20257,8 +20259,15 @@ sub read_ABI_Dump($$) my %TInfo = %{$TypeInfo{$LibVersion}{$TypeId}}; if(defined $TInfo{"Base"}) { - foreach (keys(%{$TInfo{"Base"}})) { - $Class_SubClasses{$LibVersion}{$_}{$TypeId}=1; + foreach my $SubId (keys(%{$TInfo{"Base"}})) + { + if($SubId eq $TypeId) + { # Fix erroneus ABI dump + delete($TypeInfo{$LibVersion}{$TypeId}{"Base"}{$SubId}); + next; + } + + $Class_SubClasses{$LibVersion}{$SubId}{$TypeId} = 1; } } if($TInfo{"Type"} eq "MethodPtr") diff --git a/doc/Changelog.html b/doc/Changelog.html index 3921131..b7c3f92 100644 --- a/doc/Changelog.html +++ b/doc/Changelog.html @@ -44,6 +44,15 @@ <p/> <br/> +<b>Version 1.99.14.1 (November 11, 2015)</b><br/> +<b>Bug Fixes</b> +<ul> + <li> + Fixed hang on some template instances + </li> +</ul> +<br/> + <b>Version 1.99.14 (November 01, 2015)</b><br/> <b>New Options</b> <ul> diff --git a/doc/index.html b/doc/index.html index 227650c..56b377e 100644 --- a/doc/index.html +++ b/doc/index.html @@ -94,7 +94,7 @@ <h2>Downloads</h2> <p>All releases can be downloaded from <a href="https://github.com/lvc/abi-compliance-checker/">this page</a>.</p> -<p>Latest release: <a href="https://github.com/lvc/abi-compliance-checker/archive/1.99.14.tar.gz">abi-compliance-checker-1.99.14.tar.gz</a></p> +<p>Latest release: <a href="https://github.com/lvc/abi-compliance-checker/archive/1.99.14.1.tar.gz">abi-compliance-checker-1.99.14.1.tar.gz</a></p> <p>Read-only access to the latest development version:</p> |