Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Tobias Hunger
qt-creator
Commits
8741494f
Commit
8741494f
authored
Dec 02, 2009
by
Roberto Raggi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename dependsOn() in filesDepedingOn() and introduced Snapshot::dependencyTable().
parent
b6bd021a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
66 additions
and
28 deletions
+66
-28
src/libs/cplusplus/CppDocument.cpp
src/libs/cplusplus/CppDocument.cpp
+58
-26
src/libs/cplusplus/CppDocument.h
src/libs/cplusplus/CppDocument.h
+7
-1
src/plugins/cpptools/cppfindreferences.cpp
src/plugins/cpptools/cppfindreferences.cpp
+1
-1
No files found.
src/libs/cplusplus/CppDocument.cpp
View file @
8741494f
...
...
@@ -474,6 +474,11 @@ QSharedPointer<NamespaceBinding> Snapshot::globalNamespaceBinding(Document::Ptr
return
CPlusPlus
::
bind
(
doc
,
*
this
);
}
Document
::
Ptr
Snapshot
::
value
(
const
QString
&
fileName
)
const
{
return
QMap
<
QString
,
Document
::
Ptr
>::
value
(
QDir
::
cleanPath
(
fileName
));
}
Snapshot
Snapshot
::
simplified
(
Document
::
Ptr
doc
)
const
{
Snapshot
snapshot
;
...
...
@@ -496,20 +501,15 @@ void Snapshot::simplified_helper(Document::Ptr doc, Snapshot *snapshot) const
}
}
QStringList
Snapshot
::
d
epend
s
On
(
const
QString
&
fileName
)
const
QStringList
Snapshot
::
filesD
epend
ing
On
(
const
QString
&
fileName
)
const
{
const
int
n
=
size
();
QVector
<
QString
>
files
(
n
);
const
int
N
=
size
();
QVector
<
QString
>
files
(
N
);
QHash
<
QString
,
int
>
fileIndex
;
QHash
<
int
,
QList
<
int
>
>
includes
;
QVector
<
QBitArray
>
includeMap
(
N
);
QMapIterator
<
QString
,
Document
::
Ptr
>
it
(
*
this
);
for
(
int
i
=
0
;
it
.
hasNext
();
++
i
)
{
it
.
next
();
files
[
i
]
=
it
.
key
();
fileIndex
[
it
.
key
()]
=
i
;
}
dependency_helper
(
files
,
fileIndex
,
includes
,
includeMap
);
int
index
=
fileIndex
.
value
(
fileName
,
-
1
);
if
(
index
==
-
1
)
{
...
...
@@ -517,7 +517,54 @@ QStringList Snapshot::dependsOn(const QString &fileName) const
return
QStringList
();
}
QVector
<
QBitArray
>
includeMap
(
files
.
size
());
QStringList
deps
;
for
(
int
i
=
0
;
i
<
files
.
size
();
++
i
)
{
const
QBitArray
&
bits
=
includeMap
.
at
(
i
);
if
(
bits
.
testBit
(
index
))
deps
.
append
(
files
.
at
(
i
));
}
return
deps
;
}
QMap
<
QString
,
QStringList
>
Snapshot
::
dependencyTable
()
const
{
const
int
N
=
size
();
QVector
<
QString
>
files
(
N
);
QHash
<
QString
,
int
>
fileIndex
;
QHash
<
int
,
QList
<
int
>
>
includes
;
QVector
<
QBitArray
>
includeMap
(
N
);
dependency_helper
(
files
,
fileIndex
,
includes
,
includeMap
);
QMap
<
QString
,
QStringList
>
depMap
;
for
(
int
index
=
0
;
index
<
files
.
size
();
++
index
)
{
QStringList
deps
;
for
(
int
i
=
0
;
i
<
files
.
size
();
++
i
)
{
const
QBitArray
&
bits
=
includeMap
.
at
(
i
);
if
(
bits
.
testBit
(
index
))
deps
.
append
(
files
.
at
(
i
));
}
depMap
[
files
.
at
(
index
)]
=
deps
;
}
return
depMap
;
}
void
Snapshot
::
dependency_helper
(
QVector
<
QString
>
&
files
,
QHash
<
QString
,
int
>
&
fileIndex
,
QHash
<
int
,
QList
<
int
>
>
&
includes
,
QVector
<
QBitArray
>
&
includeMap
)
const
{
QMapIterator
<
QString
,
Document
::
Ptr
>
it
(
*
this
);
for
(
int
i
=
0
;
it
.
hasNext
();
++
i
)
{
it
.
next
();
files
[
i
]
=
it
.
key
();
fileIndex
[
it
.
key
()]
=
i
;
}
for
(
int
i
=
0
;
i
<
files
.
size
();
++
i
)
{
if
(
Document
::
Ptr
doc
=
value
(
files
.
at
(
i
)))
{
...
...
@@ -559,19 +606,4 @@ QStringList Snapshot::dependsOn(const QString &fileName) const
}
}
}
while
(
changed
);
QStringList
deps
;
for
(
int
i
=
0
;
i
<
files
.
size
();
++
i
)
{
const
QBitArray
&
bits
=
includeMap
.
at
(
i
);
if
(
bits
.
testBit
(
index
))
deps
.
append
(
files
.
at
(
i
));
}
return
deps
;
}
Document
::
Ptr
Snapshot
::
value
(
const
QString
&
fileName
)
const
{
return
QMap
<
QString
,
Document
::
Ptr
>::
value
(
QDir
::
cleanPath
(
fileName
));
}
src/libs/cplusplus/CppDocument.h
View file @
8741494f
...
...
@@ -37,6 +37,7 @@
#include <QFileInfo>
#include <QList>
#include <QMap>
#include <QBitArray>
#include <QSharedPointer>
#include <QString>
#include <QStringList>
...
...
@@ -338,7 +339,8 @@ public:
QSharedPointer
<
NamespaceBinding
>
globalNamespaceBinding
(
Document
::
Ptr
doc
)
const
;
QStringList
dependsOn
(
const
QString
&
fileName
)
const
;
QStringList
filesDependingOn
(
const
QString
&
fileName
)
const
;
QMap
<
QString
,
QStringList
>
dependencyTable
()
const
;
void
insert
(
Document
::
Ptr
doc
);
Document
::
Ptr
value
(
const
QString
&
fileName
)
const
;
...
...
@@ -347,6 +349,10 @@ public:
private:
void
simplified_helper
(
Document
::
Ptr
doc
,
Snapshot
*
snapshot
)
const
;
void
dependency_helper
(
QVector
<
QString
>
&
files
,
QHash
<
QString
,
int
>
&
fileIndex
,
QHash
<
int
,
QList
<
int
>
>
&
includes
,
QVector
<
QBitArray
>
&
includeMap
)
const
;
};
}
// end of namespace CPlusPlus
...
...
src/plugins/cpptools/cppfindreferences.cpp
View file @
8741494f
...
...
@@ -124,7 +124,7 @@ static void find_helper(QFutureInterface<Usage> &future,
files
.
append
(
doc
->
fileName
());
}
}
else
{
files
+=
snapshot
.
d
epend
s
On
(
sourceFile
);
files
+=
snapshot
.
filesD
epend
ing
On
(
sourceFile
);
}
files
.
removeDuplicates
();
//qDebug() << "done in:" << tm.elapsed() << "number of files to parse:" << files.size();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment