[Lsb-messages] /var/www/bzr/lsb/devel/dbadmin r241: Use AIreturn instead of Ireturn
Denis Silakov
denis.silakov at rosalab.ru
Fri Mar 23 12:37:45 UTC 2012
------------------------------------------------------------
revno: 241
committer: Denis Silakov <denis.silakov at rosalab.ru>
branch nick: dbadmin
timestamp: Fri 2012-03-23 16:37:45 +0400
message:
Use AIreturn instead of Ireturn
modified:
admin/interface.php
consistency/consistency.php
consistency/foreign_keys.php
consistency/queries.php
int_single.inc
interface.inc
type_single.inc
-------------- next part --------------
=== modified file 'admin/interface.php'
--- a/admin/interface.php 2011-08-29 07:50:40 +0000
+++ b/admin/interface.php 2012-03-23 12:37:45 +0000
@@ -84,7 +84,6 @@
$update = "UPDATE Interface SET ";
$update.= "Itype = '".$_REQUEST['Itype'][0]."', ";
$update.= "Iheader = ".$_REQUEST['Iheader'][0].", ";
- $update.= "Ireturn = ".$_REQUEST['Ireturn'][0].", ";
$update.= "Idocumented = '".$_REQUEST['Idocumented'][0]."', ";
$update.= "Istatic = '".$_REQUEST['Istatic'][0]."', ";
$update.= "Ivirtual = '".$_REQUEST['Ivirtual'][0]."', ";
@@ -201,7 +200,6 @@
$insert.= "'".$_REQUEST['Iname']."',";
$insert.= "'".$_REQUEST['Itype'][0]."',";
$insert.= $_REQUEST['Iheader'][0].",";
- $insert.= $_REQUEST['Ireturn'][0].",";
$insert.= "'".$_REQUEST['Idocumented'][0]."',";
if( $_REQUEST['Icomment'] ) {
$insert.= "'".$_REQUEST['Icomment']."',";
=== modified file 'consistency/consistency.php'
--- a/consistency/consistency.php 2011-12-12 07:59:00 +0000
+++ b/consistency/consistency.php 2012-03-23 12:37:45 +0000
@@ -445,10 +445,11 @@
print("</tr><tr>");
print("<td>Constructors and destructors with non-zero return value</td>");
-$select = "SELECT COUNT(Iid)
+$select = "SELECT COUNT(DISTINCT Iid)
FROM Interface
+ JOIN ArchInt ON AIint=Iid
WHERE (Ifkind='Destructor' OR Ifkind='Constructor')
- AND Ireturn<>0";
+ AND AIreturn<>0";
$num = Query_value($select);
print_colored_td($num, "queries.php?cmd=constr-with-ret", "cosmetic");
print("</tr><tr>");
@@ -509,7 +510,7 @@
print("<td>Included interfaces without a return type</td>");
$select ="SELECT COUNT(DISTINCT Iid) FROM Interface
LEFT JOIN ArchInt ON AIint=Iid
- WHERE Ireturn=0
+ WHERE AIreturn=0
AND AIappearedin > ''
AND AIwithdrawnin IS NULL
AND (Iunmangled IS NULL
@@ -664,7 +665,8 @@
print("<td>'anon' types used as return types</td>");
$select = "SELECT COUNT(DISTINCT Iid) FROM Interface
- LEFT JOIN Type ON Ireturn=Tid
+ JOIN ArchInt ON AIint=Iid
+ JOIN Type ON AIreturn=Tid
WHERE Tname LIKE 'anon%'";
$num = Query_value($select);
print_colored_td($num, "queries.php?cmd=anon-rettypes", "secondary");
@@ -690,7 +692,7 @@
print("<td>Unused function pointers and anonymous types (excluding anon enums)</td>");
Query("CREATE TEMPORARY TABLE tmp_1 (KEY tid(Tid)) SELECT Tid FROM Type WHERE Tid NOT IN (SELECT Ptype FROM Parameter)");
-Query("CREATE TEMPORARY TABLE tmp_2 (KEY tid(Tid)) SELECT Tid FROM tmp_1 WHERE Tid NOT IN (SELECT Ireturn FROM Interface)");
+Query("CREATE TEMPORARY TABLE tmp_2 (KEY tid(Tid)) SELECT Tid FROM tmp_1 WHERE Tid NOT IN (SELECT AIreturn FROM ArchInt)");
Query("CREATE TEMPORARY TABLE tmp_3 (KEY tid(Tid)) SELECT Tid FROM tmp_2 WHERE Tid NOT IN (SELECT ATbasetype FROM ArchType)");
Query("CREATE TEMPORARY TABLE tmp_4 (KEY tid(Tid)) SELECT Tid FROM tmp_3 WHERE Tid NOT IN (SELECT TMtypeid FROM TypeMember)");
$select = "SELECT COUNT(Tid) FROM tmp_4
@@ -740,8 +742,8 @@
print("<td>Excluded types used as return types of included interfaces</td>");
$createRettypes = "CREATE TEMPORARY TABLE tmp_Rettypes
- (KEY `Ireturn`(`Ireturn`))
- SELECT Ireturn FROM Interface
+ (KEY `AIreturn`(`AIreturn`))
+ SELECT AIreturn FROM Interface
LEFT JOIN ArchInt ON Iid=AIint
WHERE AIappearedin > ''
AND AIwithdrawnin IS NULL
@@ -749,7 +751,7 @@
Query($createRettypes);
$select = "SELECT COUNT(DISTINCT Tid) FROM tmp_Rettypes
- LEFT JOIN Type ON Tid=Ireturn
+ LEFT JOIN Type ON Tid=AIreturn
LEFT JOIN tmp_IncTypes ON ATtid=Tid
WHERE Ttype IN ('Struct','Typedef','Enum','Union')
AND ATappearedin IS NULL ";
=== modified file 'consistency/foreign_keys.php'
--- a/consistency/foreign_keys.php 2011-08-29 07:50:40 +0000
+++ b/consistency/foreign_keys.php 2012-03-23 12:37:45 +0000
@@ -56,7 +56,7 @@
array('IntStd', 'ISsid', 'Standard', 'Sid'),
array('IntStd', 'ISrefspec', 'Standard', 'Sid'),
array('Interface', 'Iheader', 'Header', 'Hid'),
- array('Interface', 'Ireturn', 'Type', 'Tid'),
+ array('ArchInt', 'AIreturn', 'Type', 'Tid'),
array('Interface', 'Ilibrary', 'Library', 'Lname'),
array('Interface', 'Iclass', 'Type', 'Tid'),
array('InterfaceAttribute', 'IAiname', 'RawInterface', 'RIname'),
=== modified file 'consistency/queries.php'
--- a/consistency/queries.php 2011-12-12 07:59:00 +0000
+++ b/consistency/queries.php 2012-03-23 12:37:45 +0000
@@ -1537,11 +1537,11 @@
print("<h3>$desc</h3>\n");
if ($numrows) {
print("<table class='wikitable'>\n");
- print_table_header('Iid', 'Ireturn');
+ print_table_header('Iid', 'AIreturn');
while( $row = mysqli_fetch_array($res) ) {
print("<tr>\n");
print("<td>".$row['Iid']."</td>");
- print("<td>".$row['Ireturn']."</td>");
+ print("<td>".$row['AIreturn']."</td>");
print("</tr>\n");
}
print("</table>\n");
@@ -1632,21 +1632,21 @@
$i=1;
$res=Query($query);
$numrows = mysqli_num_rows($res);
- $fix_tmpl='UPDATE Interface SET Ireturn=0 WHERE Iid={$1}';
+ $fix_tmpl='UPDATE ArchInt SET AIreturn=0 WHERE AIint={$1}';
$numFields = mysqli_num_fields($res);
print("<h1>$title ($numrows ".entry($numrows).")</h1>\n");
print("<h3>$desc</h3>\n");
if ($numrows) {
print("<table class='wikitable'>\n");
- print_table_header('Iid', 'Iname', 'Ifkind', 'Ireturn', 'Possible Fix');
+ print_table_header('Iid', 'Iname', 'Ifkind', 'AIreturn', 'Possible Fix');
while( $row = mysqli_fetch_array($res) ) {
print("<tr>\n");
print("<td>".$row['Iid']."</td>");
print("<td><a href=\"../browse/interface.php?cmd=display&id=".$row['Iid']."\">"
.htmlspecialchars($row['Iname'])."</a> (Iid=".$row['Iid'].")</td>");
print("<td>".$row['Ifkind']."</td>");
- print("<td>".$row['Ireturn']."</td>");
+ print("<td>".$row['AIreturn']."</td>");
$recommendation=form_recommendation($fix_tmpl, $row, $numFields);
print("<td>".$recommendation."</td>");
$rec[$i++] = $recommendation;
@@ -1716,7 +1716,7 @@
$numFields = mysqli_num_fields($res);
$fix_tmpl = 'UPDATE Interface SET Iheader=0, Idocumented=\'Yes\', Itestable=\'No\' WHERE Iid={$1}';
print("<table class='wikitable'>\n");
- print_table_header('Iid', 'Iname', 'Iheader', 'Iunmangled', 'Ireturn', 'Idocumented', 'Itestable', 'Possible Fix');
+ print_table_header('Iid', 'Iname', 'Iheader', 'Iunmangled', 'AIreturn', 'Idocumented', 'Itestable', 'Possible Fix');
while( $row = mysqli_fetch_array($res) ) {
print("<tr>\n");
print("<td>".$row['Iid']."</td>");
@@ -1724,7 +1724,7 @@
.htmlspecialchars($row['Iname'])."</a> (Iid=".$row['Iid'].")</td>");
print("<td>".$row['Iheader']."</td>");
print("<td>".htmlspecialchars($row['Iunmangled'])."</td>");
- print("<td>".$row['Ireturn']."</td>");
+ print("<td>".$row['AIreturn']."</td>");
print("<td>".$row['Idocumented']."</td>");
print("<td>".$row['Itestable']."</td>");
$recommendation = form_recommendation($fix_tmpl, $row, $numFields);
@@ -1857,8 +1857,8 @@
*/
function output_excluded_rettypes()
{
- $select = "CREATE TEMPORARY TABLE tmp_Rettypes (KEY `Ireturn`(`Ireturn`))
- SELECT DISTINCT Ireturn FROM Interface
+ $select = "CREATE TEMPORARY TABLE tmp_Rettypes (KEY `AIreturn`(`AIreturn`))
+ SELECT DISTINCT AIreturn FROM Interface
LEFT JOIN ArchInt ON Iid=AIint
WHERE AIappearedin > ''
AND AIwithdrawnin IS NULL
@@ -1872,7 +1872,7 @@
$res = Query($select);
$select= "SELECT DISTINCT Tname, Ttype, Tlibrary, Hname FROM tmp_Rettypes
- LEFT JOIN Type ON Tid=Ireturn
+ LEFT JOIN Type ON Tid=AIreturn
LEFT JOIN tmp_IncTypes ON ATtid=Tid
LEFT JOIN HeaderGroup ON Theadgroup=HGid
LEFT JOIN Header ON Hid=HGheader
@@ -2338,7 +2338,7 @@
$fix_tmpl='DELETE FROM Type WHERE Tid={$1}';
$title="Unused Function Pointers and Anonymous Types (Excluding Enums)";
Query("CREATE TEMPORARY TABLE IF NOT EXISTS tmp_1 (KEY tid(Tid)) SELECT Tid FROM Type WHERE Tid NOT IN (SELECT Ptype FROM Parameter)");
- Query("CREATE TEMPORARY TABLE tmp2 (KEY tid(Tid)) SELECT Tid FROM tmp_1 WHERE Tid NOT IN (SELECT Ireturn FROM Interface)");
+ Query("CREATE TEMPORARY TABLE tmp2 (KEY tid(Tid)) SELECT Tid FROM tmp_1 WHERE Tid NOT IN (SELECT AIreturn FROM ArchInt)");
Query("CREATE TEMPORARY TABLE tmp3 (KEY tid(Tid)) SELECT Tid FROM tmp_2 WHERE Tid NOT IN (SELECT ATbasetype FROM ArchType)");
Query("CREATE TEMPORARY TABLE tmp4 (KEY tid(Tid)) SELECT Tid FROM tmp_3 WHERE Tid NOT IN (SELECT TMtypeid FROM TypeMember)");
$query="SELECT Tid,Tname FROM tmp_4
@@ -2435,7 +2435,7 @@
LEFT JOIN ArchInt ON AIint=Iid
LEFT JOIN IntStd ON ISiid=Iid
LEFT JOIN Standard ON Sid=ISsid
- WHERE Ireturn=0
+ WHERE AIreturn=0
AND AIappearedin > ''
AND AIwithdrawnin IS NULL
AND (Iunmangled IS NULL
@@ -2579,8 +2579,9 @@
$title = "C++-specific Symbols with Incorrect Iheader/Idocumented/Itestable Values";
$desc = "'typeinfo', 'vtable', 'guard variable' and 'thunk' symbols should not be assigned to any header. "
."They all should be marked as documented but not subjected to tests.";
- $select = "SELECT Iid,Iname,Iheader,Iunmangled, Ireturn, Idocumented, Itestable
+ $select = "SELECT Iid, Iname, Iheader, Iunmangled, AIreturn, Idocumented, Itestable
FROM Interface
+ JOIN ArchInt ON AIint=Iid
WHERE (Iunmangled LIKE '%thunk%' OR Iunmangled LIKE '%typeinfo%'
OR Iunmangled like '%guard variable%' OR Iunmangled LIKE '%vtable%')
AND (Iheader<>0 OR Idocumented<>'Yes' OR Itestable<>'No')";
@@ -2588,10 +2589,11 @@
break;
case "constr-with-ret" :
$title = "Constructors and Destructors with Non-Zero Return Value";
- $desc = "Constructors and destructors should have Ireturn=0";
- $select = "SELECT Iid,Iname,Ifkind,Ireturn
+ $desc = "Constructors and destructors should have AIreturn=0";
+ $select = "SELECT Iid,Iname,Ifkind,AIreturn
FROM Interface
- WHERE (Ifkind LIKE '%destructor%' OR Ifkind LIKE '%constructor%') AND Ireturn<>0";
+ JOIN ArchInt ON AIint=Iid
+ WHERE (Ifkind LIKE '%destructor%' OR Ifkind LIKE '%constructor%') AND AIreturn<>0";
output_constr_with_ret($select, $title, $desc);
break;
case "int-mis-doc" :
@@ -2632,8 +2634,8 @@
case "anon-rettypes" :
$title = "'anon' Types Used as Return Types";
$desc = "Anon types used as return types";
- $select = "SELECT Iid, Ireturn FROM Interface
- LEFT JOIN Type ON Ireturn=Tid
+ $select = "SELECT AIint AS Iid, AIreturn FROM ArchInt
+ LEFT JOIN Type ON AIreturn=Tid
WHERE Tname LIKE 'anon%'";
output_anon_rettypes($select, $title, $desc);
break;
=== modified file 'int_single.inc'
--- a/int_single.inc 2012-02-22 17:47:45 +0000
+++ b/int_single.inc 2012-03-23 12:37:45 +0000
@@ -1287,9 +1287,10 @@
}
}
- $select = "SELECT Vname,Itype,Iid,AIappearedin,AIwithdrawnin,AIarch,Icandidatefor,AIdeprecatedsince,Iclass FROM Interface
+ $select = "SELECT Vname,Itype,Iid,AIappearedin,AIwithdrawnin,AIarch,Icandidatefor,AIdeprecatedsince,Iclass,Tid,Tname,Ttype FROM Interface
LEFT JOIN ArchInt ON AIint=Iid
LEFT JOIN Version ON AIversion=Vid
+ LEFT JOIN Type ON AIreturn=Tid
WHERE Iid=$Iid
AND (AIappearedin >'' OR Icandidatefor IS NOT NULL)
GROUP BY AIarch, AIappearedin
@@ -1329,7 +1330,7 @@
AND AIint=$Iid";
$printWithdrawn = Query_value($selectWithdrawn);
- $selectMinAppeared = "SELECT min(AIappearedin) FROM ArchInt
+ $selectMinAppeared = "SELECT MIN(AIappearedin) FROM ArchInt
WHERE AIint=$Iid
AND AIappearedin > '' ";
$resMinAppeared = Query($selectMinAppeared);
@@ -1342,11 +1343,13 @@
$appearedin_max = "";
+ // If interface is currently included
$presented = false;
- $selectPresented = "SELECT AIint FROM ArchInt
+ $selectPresented = "SELECT 1 FROM ArchInt
WHERE AIint=$Iid
AND AIappearedin > ''
- AND AIwithdrawnin IS NULL";
+ AND AIwithdrawnin IS NULL
+ LIMIT 1";
$resPresented = Query($selectPresented);
if( mysqli_num_rows($resPresented) > 0 ) {
$presented = true;
@@ -1378,6 +1381,7 @@
if( isset($withdrawnin) and $appearedin_max >= $withdrawnin and $withdrawnin != "" ) {
// Interface was added more than once
// Not perfect now - we'll catch only first and last appearances
+ // But we don't have other cases in the current DB, so that's ok atm
$selectVersions = "SELECT DISTINCT Vname FROM ArchInt
LEFT JOIN Version ON Vid=AIversion
@@ -1405,6 +1409,32 @@
$version2 = "Arch specific";
}
+ $selectRetTypes = "SELECT DISTINCT Tid, Tname, Ttype FROM ArchInt
+ LEFT JOIN Type ON Tid=AIreturn
+ WHERE AIint=$Iid
+ AND AIappearedin > '' AND AIappearedin < '$withdrawnin'
+ AND AIwithdrawnin = '$withdrawnin'
+ ORDER BY AIarch, AIappearedin ";
+ $resRetTypes = Query($selectRetTypes);
+ if( mysqli_num_rows($resRetTypes) == 1 ) {
+ $rowRetTypes = mysqli_fetch_array($resRetTypes);
+ $retType = form_return_type($rowRetTypes['Tid'], $rowRetTypes['Ttype'], $rowRetTypes['Tname'], $Iname);
+ }
+ else {
+ $retType = "Specific to LSB version";
+ }
+
+ $selectRetTypes = str_replace( "AND AIappearedin < '$withdrawnin'", "AND AIappearedin >= '$withdrawnin'", $selectRetTypes );
+ $selectRetTypes = str_replace( "AND AIwithdrawnin = '$withdrawnin'", "AND AIwithdrawnin IS NULL", $selectRetTypes );
+ $resRetTypes = Query($selectRetTypes);
+ if( mysqli_num_rows($resRetTypes) == 1 ) {
+ $rowRetTypes = mysqli_fetch_array($resRetTypes);
+ $retType2 = form_return_type($rowRetTypes['Tid'], $rowRetTypes['Ttype'], $rowRetTypes['Tname'], $Iname);
+ }
+ else {
+ $retType2 = "Specific to LSB version";
+ }
+
$selectGeneric = "SELECT AIint FROM ArchInt WHERE AIarch=1
AND AIappearedin > '' AND AIappearedin < '$withdrawnin'
AND AIwithdrawnin = '$withdrawnin'
@@ -1444,6 +1474,22 @@
$version = "<i>See details</i>";
}
+ $selectRetTypes = "SELECT DISTINCT Tid, Tname, Ttype FROM ArchInt
+ LEFT JOIN Type ON Tid=AIreturn
+ WHERE AIint=$Iid ";
+ if( $appearedin > "" and (!isset($withdrawnin) or $withdrawnin == "") ) {
+ $selectRetTypes.= "AND AIappearedin > '' AND AIwithdrawnin IS NULL ";
+ }
+ $selectRetTypes.= "ORDER BY AIarch ";
+ $resRetTypes = Query($selectRetTypes);
+ if( mysqli_num_rows($resRetTypes) == 1 ) {
+ $rowRetTypes = mysqli_fetch_array($resRetTypes);
+ $retType = form_return_type($rowRetTypes['Tid'], $rowRetTypes['Ttype'], $rowRetTypes['Tname'], $Iname);
+ }
+ else {
+ $retType = "<i>See details</i>";
+ }
+
if( $presented ) {
$selectGeneric = "SELECT AIint FROM ArchInt WHERE AIarch=1 AND AIappearedin > '' AND AIwithdrawnin IS NULL ";
}
@@ -1478,7 +1524,7 @@
$MandatorySince = '';
}
- print( "<table class='wikitable'><tr><th>Architecture</th><th>Version</th><th>Appeared in</th>" );
+ print( "<table class='wikitable'><tr><th>Architecture</th><th>Version</th><th>Return Type</th><th>Appeared in</th>" );
if( !$MandatorySince or $MandatorySince > $appearedin ) {
print( "<th>Mandatory since</th>" );
}
@@ -1494,6 +1540,7 @@
}
print( "<td>$generic</td>" );
print( "<td>$version</td>\n" );
+ print( "<td>$retType</td>\n" );
print( "<td align='center'>$appearedin</td>\n" );
if( !$MandatorySince or $MandatorySince > $appearedin ) {
print( "<td align='center'>$MandatorySince</td>\n" );
@@ -1502,7 +1549,7 @@
print( "<td align='center'>$withdrawnin</td>\n" );
}
- $colspan = $printWithdrawn ? 4 : 3;
+ $colspan = $printWithdrawn ? 5 : 4;
if( !$MandatorySince or $MandatorySince > $appearedin ) {
$colspan++;
}
@@ -1514,6 +1561,7 @@
print( "<tr>" );
print( "<td>$generic2</td>" );
print( "<td>$version2</td>\n" );
+ print( "<td>$retType2</td>\n" );
print( "<td align='center'>$appearedin_max</td>\n" );
if( !$MandatorySince or $MandatorySince > $appearedin_max ) {
print( "<td align='center'>$MandatorySince</td>\n" );
@@ -1538,7 +1586,7 @@
$depr_field = $displayDepr ? "Deprecated since" : "";
$withdrawn_field = $printWithdrawn ? "Withdrawn in" : "";
- print_table_header( 'Architecture', 'Version', 'Appearedin', $depr_field, $withdrawn_field );
+ print_table_header( 'Architecture', 'Version', 'Return Type', 'Appearedin', $depr_field, $withdrawn_field );
while( $row ) {
if( $row['AIappearedin'] > '' ) {
@@ -1551,6 +1599,7 @@
print("<tr>\n");
print("<td>$font_start".$Architecture[$row["AIarch"]]."$font_close</td>\n");
print("<td>$font_start".$row["Vname"]."$font_close</td>\n");
+ print("<td>$font_start".$row["Tname"]."$font_close</td>\n");
print("<td align='center'>$font_start".$row["AIappearedin"]."$font_close</td>\n");
if( $displayDepr ) {
print( " <td align='center'>$font_start".$row['AIdeprecatedsince']."$font_close</td>\n" );
@@ -1925,9 +1974,8 @@
print "<h3>$Title</h3>\n";
}
- $select = "SELECT Iid,Iname,Itype,Hname,Hid,Tid,Tname,Ttype,Tunmangled,Iunmangled FROM Interface
+ $select = "SELECT Iid,Iname,Itype,Hname,Hid,Iunmangled FROM Interface
LEFT JOIN Header ON Hid=Iheader
- LEFT JOIN Type ON Tid=Ireturn
WHERE Iname='$Iname' ";
if( $Ilibrary ) {
$select.= "AND Ilibrary='$Ilibrary' ";
@@ -1947,10 +1995,18 @@
return;
}
-/*
- print "<div style='padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height: 1.1em; ";
- print "font-size:105%;font-family: Courier, sans-serif;'>\n" ;
-*/
+ $selectRetType = "SELECT Tid,Tname,Ttype FROM ArchInt
+ JOIN Type ON Tid=AIreturn
+ WHERE AIint=".$row['Iid']."
+ AND AIappearedin=(
+ SELECT MAX(AIappearedin) FROM ArchInt WHERE AIint=".$row['Iid']."
+ )";
+ $resRetType = Query($selectRetType);
+ $rowRetType = mysqli_fetch_array($resRetType);
+ $row['Tid'] = $rowRetType['Tid'];
+ $row['Ttype'] = $rowRetType['Ttype'];
+ $row['Tname'] = $rowRetType['Tname'];
+
print "<div class='synopsis'>\n";
if( $row["Hname"] ) {
@@ -1959,40 +2015,15 @@
print htmlspecialchars(">\n\n")."<br/><br/>";
}
if( $row["Tname"] ) {
- $fptrName = "";
- if( $row["Ttype"] == "Struct" ) {
- print "struct ";
- }
- else if( $row["Ttype"] == "Union" ) {
- print "union ";
- }
- else if( $row["Ttype"] == "Enum" ) {
- print "enum ";
- }
- else if( $row["Ttype"] == "Volatile" ) {
- print "volatile ";
- }
- else if( $row["Ttype"] == "Const" ) {
-// print "const ";
- }
- else if( $row["Ttype"] == "FuncPtr" ) {
- $fptrName = $row['Iname'];
- }
-
- $sql = "SELECT * FROM Type
- LEFT JOIN ArchType ON ATtid=Tid
- WHERE Tid=".$row['Tid'];
- $res2 = Query($sql);
- $row2 = mysqli_fetch_array($res2);
-
- $dbtype = displaytyperef($row2,1,$fptrName);
- if( $dbtype == "" ) {
+ $rettype = form_return_type($row['Tid'], $row['Ttype'], $row['Tname'], $row['Iname']);
+ if( $rettype ) {
+ print $rettype;
+ // A little hack for unmangled tricks below...
+ $rettype = $row['Tname'];
+ }
+ else {
print "void ";
}
- else {
- print $dbtype." ";
- $rettype = $row['Tname'];
- }
}
}
else {
@@ -2120,6 +2151,50 @@
print "</div><p/>\n";
}
+/*
+ * Form a string with interface return type into interface synopsis
+ *
+ * If everythin is ok and return type is formed, then the string to be displayed is returned.
+ * Otherwise the function returns an empty string
+ */
+function form_return_type($Tid, $Ttype, $Tname, $Iname)
+{
+ $fptrName = "";
+ $prefix = "";
+ if( $Ttype == "Struct" ) {
+ $prefix = "struct ";
+ }
+ else if( $Ttype == "Union" ) {
+ $prefix = "union ";
+ }
+ else if( $Ttype == "Enum" ) {
+ $prefix = "enum ";
+ }
+ else if( $Ttype == "Volatile" ) {
+ $prefix = "volatile ";
+ }
+ else if( $Ttype == "Const" ) {
+// print "const ";
+ }
+ else if( $Ttype == "FuncPtr" ) {
+ $fptrName = $Iname;
+ }
+
+ $sql = "SELECT * FROM Type
+ LEFT JOIN ArchType ON ATtid=Tid
+ WHERE Tid=".$Tid;
+ $res2 = Query($sql);
+ $row2 = mysqli_fetch_array($res2);
+
+ $dbtype = displaytyperef($row2,1,$fptrName);
+ if( $dbtype == "" ) {
+ return "";
+ }
+ else {
+ return $prefix.$dbtype." ";
+ }
+}
+
// The same as fill_lib_loaded_deps (implemented in SQL),
// but for libraries from a given component
function create_dep_list_for_library($Did, $Cid, $RIlibrary)
@@ -2187,19 +2262,6 @@
{
global $Architecture, $standard, $tmpComponent;
- $select = "SELECT Iid,RIname,Hname,Tname,Iunmangled FROM Interface
- LEFT JOIN Header ON Hid=Iheader
- LEFT JOIN Type ON Tid=Ireturn
- LEFT JOIN RawInterface ON Iname=RIname
- WHERE RIname='$RIname' ";
- if( $RIlibrary ) {
- $select.= "AND RIlibrary='$RIlibrary' ";
- }
- $select.= "GROUP BY RIname";
- $res=Query($select);
-
- $row=mysqli_fetch_array($res);
-
print("<h1>Interface '$RIname'");
if( $RIlibrary ) {
print " ($RIlibrary)";
=== modified file 'interface.inc'
--- a/interface.inc 2011-08-29 07:50:40 +0000
+++ b/interface.inc 2012-03-23 12:37:45 +0000
@@ -70,9 +70,9 @@
if( !isset($int['AIwithdrawnin']) ) { $int['AIwithdrawnin'] = ''; }
if( !isset($int['ISrefspec']) ) { $int['ISrefspec'] = 0; }
- $RetName = Query_value("SELECT IFNULL(Tunmangled,Tname) FROM Type WHERE Tid=".$int['Ireturn']);
+ $RetName = Query_value("SELECT IFNULL(Tunmangled,Tname) FROM Type WHERE Tid=".$int['AIreturn']);
if( $RetName ) {
- $baseTid = calcBaseTid($int['Ireturn']);
+ $baseTid = calcBaseTid($int['AIreturn']);
$rettype = "<a href=\"type_single.php?cmd=display&Tid=".$baseTid."\">".htmlspecialchars($RetName)."</a>";
}
else {
@@ -211,10 +211,6 @@
print("<td>");
outputindexselect("Iheader",$int["Iheader"],$Header, false, $width);
print("</td></tr>\n");
- print("<tr><th class='left'>Return Type</th>\n");
- print("<td>");
- outputindexselect_from_table("Ireturn",$int["Ireturn"],"Type", "Tid", "Tname", "Tunmangled", false, $width);
- print("</td></tr>\n");
print("<tr><th class='left'>LibGroup</th>\n");
print("<td>");
outputindexselect("Ilibgroup",$int["LGid"],$LibGroup, false, $width, false);
@@ -305,8 +301,6 @@
print("</td><td></td><td>\n");
outputtemplateselect("Iheader");
print("</td><td>\n");
- outputtemplateselect("Ireturn");
- print("</td><td>\n");
outputtemplateselect("Ilibgroup");
print("</td><td>\n");
outputtemplateselect("Idocumented");
@@ -360,9 +354,6 @@
print( "<tr><th class='left'>Interface Type</th><td>" );
outputselect("Itype","",$inttype);
print( "</td></tr>\n" );
- print( "<tr><th class='left'>Return Type</th><td>" );
- outputindexselect("Ireturn","",$TypeLegal, false, $width);
- print( "</td></tr>\n" );
print( "<tr><th class='left'>Class</th><td>" );
outputindexselect("Iclass",0,$TypeClass, false, $width);
print( "</td></tr>\n" );
=== modified file 'type_single.inc'
--- a/type_single.inc 2010-10-26 13:31:43 +0000
+++ b/type_single.inc 2012-03-23 12:37:45 +0000
@@ -500,9 +500,9 @@
GROUP BY Ptype
HAVING par_cnt > 0 ";
- $selectReturns = "SELECT Ireturn, COUNT(Iid) AS ret_cnt FROM Interface
- WHERE Ireturn IN ($DerivedTypes)
- GROUP BY Ireturn
+ $selectReturns = "SELECT AIreturn, COUNT(DISTINCT AIint) AS ret_cnt FROM ArchInt
+ WHERE AIreturn IN ($DerivedTypes)
+ GROUP BY AIreturn
HAVING ret_cnt > 0";
$resParams = Query($selectParams);
@@ -518,7 +518,7 @@
}
while( $rowReturns = mysqli_fetch_array($resReturns) ) {
- $UsedReturns[$rowReturns['Ireturn']] = $rowReturns['ret_cnt'];
+ $UsedReturns[$rowReturns['AIreturn']] = $rowReturns['ret_cnt'];
}
print "<table class='wikitable'>";
@@ -555,7 +555,7 @@
}
if( $kind == 'return' ) {
- $num = Query_value("SELECT COUNT(Iid) FROM Interface WHERE Ireturn=$Tid");
+ $num = Query_value("SELECT COUNT(DISTINCT AIint) FROM ArchInt WHERE AIreturn=$Tid");
}
else {
$num = Query_value("SELECT COUNT(DISTINCT Pint) FROM Parameter WHERE Ptype=$Tid");
@@ -575,8 +575,9 @@
}
if( $kind == 'return' ) {
- $select = "SELECT Iid,Iname,Iunmangled,Ilibrary FROM Interface
- WHERE Ireturn=$Tid
+ $select = "SELECT DISTINCT Iid,Iname,Iunmangled,Ilibrary FROM Interface
+ JOIN ArchInt ON AIint=Iid
+ WHERE AIreturn=$Tid
ORDER BY Iname ";
}
else {
@@ -1358,7 +1359,7 @@
$entry = mysqli_fetch_array($res_t);
displaytype($entry, $AppVer, $WithdrawnVer, 1);
print $tmentry['TMname'];
- if( $tmentry['Ttype'] == 'Array' ) {
+ if( $entry['Ttype'] == 'Array' ) {
if( $tmentry['TMarray'] ) {
print "[".$tmentry['TMarray']."]";
} else if( $entry['ATsize'] ) {
More information about the lsb-messages
mailing list