Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
1c023eac
Commit
1c023eac
authored
Jan 21, 2018
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
db/update/Walk: add "noexcept"
parent
1e3f0650
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
48 additions
and
45 deletions
+48
-45
Archive.cxx
src/db/update/Archive.cxx
+7
-7
Container.cxx
src/db/update/Container.cxx
+4
-3
UpdateSong.cxx
src/db/update/UpdateSong.cxx
+2
-2
Walk.cxx
src/db/update/Walk.cxx
+15
-13
Walk.hxx
src/db/update/Walk.hxx
+20
-20
No files found.
src/db/update/Archive.cxx
View file @
1c023eac
...
...
@@ -39,21 +39,21 @@
#include <string.h>
static
Directory
*
LockFindChild
(
Directory
&
directory
,
const
char
*
name
)
LockFindChild
(
Directory
&
directory
,
const
char
*
name
)
noexcept
{
const
ScopeDatabaseLock
protect
;
return
directory
.
FindChild
(
name
);
}
static
Directory
*
LockMakeChild
(
Directory
&
directory
,
const
char
*
name
)
LockMakeChild
(
Directory
&
directory
,
const
char
*
name
)
noexcept
{
const
ScopeDatabaseLock
protect
;
return
directory
.
MakeChild
(
name
);
}
static
Song
*
LockFindSong
(
Directory
&
directory
,
const
char
*
name
)
LockFindSong
(
Directory
&
directory
,
const
char
*
name
)
noexcept
{
const
ScopeDatabaseLock
protect
;
return
directory
.
FindSong
(
name
);
...
...
@@ -61,7 +61,7 @@ LockFindSong(Directory &directory, const char *name)
void
UpdateWalk
::
UpdateArchiveTree
(
ArchiveFile
&
archive
,
Directory
&
directory
,
const
char
*
name
)
const
char
*
name
)
noexcept
{
const
char
*
tmp
=
strchr
(
name
,
'/'
);
if
(
tmp
)
{
...
...
@@ -112,7 +112,7 @@ class UpdateArchiveVisitor final : public ArchiveVisitor {
public
:
UpdateArchiveVisitor
(
UpdateWalk
&
_walk
,
ArchiveFile
&
_archive
,
Directory
*
_directory
)
Directory
*
_directory
)
noexcept
:
walk
(
_walk
),
archive
(
_archive
),
directory
(
_directory
)
{}
virtual
void
VisitArchiveEntry
(
const
char
*
path_utf8
)
override
{
...
...
@@ -133,7 +133,7 @@ class UpdateArchiveVisitor final : public ArchiveVisitor {
void
UpdateWalk
::
UpdateArchiveFile
(
Directory
&
parent
,
const
char
*
name
,
const
StorageFileInfo
&
info
,
const
ArchivePlugin
&
plugin
)
const
ArchivePlugin
&
plugin
)
noexcept
{
Directory
*
directory
=
LockFindChild
(
parent
,
name
);
...
...
@@ -182,7 +182,7 @@ UpdateWalk::UpdateArchiveFile(Directory &parent, const char *name,
bool
UpdateWalk
::
UpdateArchiveFile
(
Directory
&
directory
,
const
char
*
name
,
const
char
*
suffix
,
const
StorageFileInfo
&
info
)
const
StorageFileInfo
&
info
)
noexcept
{
const
ArchivePlugin
*
plugin
=
archive_plugin_from_suffix
(
suffix
);
if
(
plugin
==
nullptr
)
...
...
src/db/update/Container.cxx
View file @
1c023eac
...
...
@@ -33,7 +33,7 @@
Directory
*
UpdateWalk
::
MakeDirectoryIfModified
(
Directory
&
parent
,
const
char
*
name
,
const
StorageFileInfo
&
info
)
const
StorageFileInfo
&
info
)
noexcept
{
Directory
*
directory
=
parent
.
FindChild
(
name
);
...
...
@@ -57,7 +57,8 @@ UpdateWalk::MakeDirectoryIfModified(Directory &parent, const char *name,
}
static
bool
SupportsContainerSuffix
(
const
DecoderPlugin
&
plugin
,
const
char
*
suffix
)
SupportsContainerSuffix
(
const
DecoderPlugin
&
plugin
,
const
char
*
suffix
)
noexcept
{
return
plugin
.
container_scan
!=
nullptr
&&
plugin
.
SupportsSuffix
(
suffix
);
...
...
@@ -66,7 +67,7 @@ SupportsContainerSuffix(const DecoderPlugin &plugin, const char *suffix)
bool
UpdateWalk
::
UpdateContainerFile
(
Directory
&
directory
,
const
char
*
name
,
const
char
*
suffix
,
const
StorageFileInfo
&
info
)
const
StorageFileInfo
&
info
)
noexcept
{
const
DecoderPlugin
*
_plugin
=
decoder_plugins_find
([
suffix
](
const
DecoderPlugin
&
plugin
){
return
SupportsContainerSuffix
(
plugin
,
suffix
);
...
...
src/db/update/UpdateSong.cxx
View file @
1c023eac
...
...
@@ -33,7 +33,7 @@
inline
void
UpdateWalk
::
UpdateSongFile2
(
Directory
&
directory
,
const
char
*
name
,
const
char
*
suffix
,
const
StorageFileInfo
&
info
)
const
StorageFileInfo
&
info
)
noexcept
{
Song
*
song
;
{
...
...
@@ -95,7 +95,7 @@ UpdateWalk::UpdateSongFile2(Directory &directory,
bool
UpdateWalk
::
UpdateSongFile
(
Directory
&
directory
,
const
char
*
name
,
const
char
*
suffix
,
const
StorageFileInfo
&
info
)
const
StorageFileInfo
&
info
)
noexcept
{
if
(
!
decoder_plugins_supports_suffix
(
suffix
))
return
false
;
...
...
src/db/update/Walk.cxx
View file @
1c023eac
...
...
@@ -50,7 +50,7 @@
#include <errno.h>
UpdateWalk
::
UpdateWalk
(
EventLoop
&
_loop
,
DatabaseListener
&
_listener
,
Storage
&
_storage
)
Storage
&
_storage
)
noexcept
:
cancel
(
false
),
storage
(
_storage
),
editor
(
_loop
,
_listener
)
...
...
@@ -75,7 +75,7 @@ directory_set_stat(Directory &dir, const StorageFileInfo &info)
inline
void
UpdateWalk
::
RemoveExcludedFromDirectory
(
Directory
&
directory
,
const
ExcludeList
&
exclude_list
)
const
ExcludeList
&
exclude_list
)
noexcept
{
const
ScopeDatabaseLock
protect
;
...
...
@@ -101,7 +101,7 @@ UpdateWalk::RemoveExcludedFromDirectory(Directory &directory,
}
inline
void
UpdateWalk
::
PurgeDeletedFromDirectory
(
Directory
&
directory
)
UpdateWalk
::
PurgeDeletedFromDirectory
(
Directory
&
directory
)
noexcept
{
directory
.
ForEachChildSafe
([
&
](
Directory
&
child
){
if
(
child
.
IsMount
()
||
DirectoryExists
(
storage
,
child
))
...
...
@@ -135,7 +135,7 @@ UpdateWalk::PurgeDeletedFromDirectory(Directory &directory)
#ifndef _WIN32
static
bool
update_directory_stat
(
Storage
&
storage
,
Directory
&
directory
)
update_directory_stat
(
Storage
&
storage
,
Directory
&
directory
)
noexcept
{
StorageFileInfo
info
;
if
(
!
GetInfo
(
storage
,
directory
.
GetPath
(),
info
))
...
...
@@ -154,7 +154,7 @@ update_directory_stat(Storage &storage, Directory &directory)
*/
static
int
FindAncestorLoop
(
Storage
&
storage
,
Directory
*
parent
,
unsigned
inode
,
unsigned
device
)
unsigned
inode
,
unsigned
device
)
noexcept
{
#ifndef _WIN32
if
(
device
==
0
&&
inode
==
0
)
...
...
@@ -187,7 +187,7 @@ FindAncestorLoop(Storage &storage, Directory *parent,
inline
bool
UpdateWalk
::
UpdatePlaylistFile
(
Directory
&
directory
,
const
char
*
name
,
const
char
*
suffix
,
const
StorageFileInfo
&
info
)
const
StorageFileInfo
&
info
)
noexcept
{
if
(
!
playlist_suffix_supported
(
suffix
))
return
false
;
...
...
@@ -202,7 +202,8 @@ UpdateWalk::UpdatePlaylistFile(Directory &directory,
inline
bool
UpdateWalk
::
UpdateRegularFile
(
Directory
&
directory
,
const
char
*
name
,
const
StorageFileInfo
&
info
)
const
char
*
name
,
const
StorageFileInfo
&
info
)
noexcept
{
const
char
*
suffix
=
uri_get_suffix
(
name
);
if
(
suffix
==
nullptr
)
...
...
@@ -216,7 +217,7 @@ UpdateWalk::UpdateRegularFile(Directory &directory,
void
UpdateWalk
::
UpdateDirectoryChild
(
Directory
&
directory
,
const
ExcludeList
&
exclude_list
,
const
char
*
name
,
const
StorageFileInfo
&
info
)
const
char
*
name
,
const
StorageFileInfo
&
info
)
noexcept
try
{
assert
(
strchr
(
name
,
'/'
)
==
nullptr
);
...
...
@@ -328,7 +329,7 @@ UpdateWalk::SkipSymlink(const Directory *directory,
bool
UpdateWalk
::
UpdateDirectory
(
Directory
&
directory
,
const
ExcludeList
&
exclude_list
,
const
StorageFileInfo
&
info
)
const
StorageFileInfo
&
info
)
noexcept
{
assert
(
info
.
IsDirectory
());
...
...
@@ -390,7 +391,7 @@ UpdateWalk::UpdateDirectory(Directory &directory,
inline
Directory
*
UpdateWalk
::
DirectoryMakeChildChecked
(
Directory
&
parent
,
const
char
*
uri_utf8
,
const
char
*
name_utf8
)
const
char
*
name_utf8
)
noexcept
{
Directory
*
directory
;
{
...
...
@@ -429,7 +430,8 @@ UpdateWalk::DirectoryMakeChildChecked(Directory &parent,
}
inline
Directory
*
UpdateWalk
::
DirectoryMakeUriParentChecked
(
Directory
&
root
,
const
char
*
uri
)
UpdateWalk
::
DirectoryMakeUriParentChecked
(
Directory
&
root
,
const
char
*
uri
)
noexcept
{
Directory
*
directory
=
&
root
;
char
*
duplicated
=
xstrdup
(
uri
);
...
...
@@ -455,7 +457,7 @@ UpdateWalk::DirectoryMakeUriParentChecked(Directory &root, const char *uri)
}
inline
void
UpdateWalk
::
UpdateUri
(
Directory
&
root
,
const
char
*
uri
)
UpdateWalk
::
UpdateUri
(
Directory
&
root
,
const
char
*
uri
)
noexcept
try
{
Directory
*
parent
=
DirectoryMakeUriParentChecked
(
root
,
uri
);
if
(
parent
==
nullptr
)
...
...
@@ -482,7 +484,7 @@ try {
}
bool
UpdateWalk
::
Walk
(
Directory
&
root
,
const
char
*
path
,
bool
discard
)
UpdateWalk
::
Walk
(
Directory
&
root
,
const
char
*
path
,
bool
discard
)
noexcept
{
walk_discard
=
discard
;
modified
=
false
;
...
...
src/db/update/Walk.hxx
View file @
1c023eac
...
...
@@ -62,20 +62,20 @@ class UpdateWalk final {
public
:
UpdateWalk
(
EventLoop
&
_loop
,
DatabaseListener
&
_listener
,
Storage
&
_storage
);
Storage
&
_storage
)
noexcept
;
/**
* Cancel the current update and quit the Walk() method as
* soon as possible.
*/
void
Cancel
()
{
void
Cancel
()
noexcept
{
cancel
=
true
;
}
/**
* Returns true if the database was modified.
*/
bool
Walk
(
Directory
&
root
,
const
char
*
path
,
bool
discard
);
bool
Walk
(
Directory
&
root
,
const
char
*
path
,
bool
discard
)
noexcept
;
private
:
gcc_pure
...
...
@@ -83,60 +83,60 @@ private:
const
char
*
utf8_name
)
const
noexcept
;
void
RemoveExcludedFromDirectory
(
Directory
&
directory
,
const
ExcludeList
&
exclude_list
);
const
ExcludeList
&
exclude_list
)
noexcept
;
void
PurgeDeletedFromDirectory
(
Directory
&
directory
);
void
PurgeDeletedFromDirectory
(
Directory
&
directory
)
noexcept
;
void
UpdateSongFile2
(
Directory
&
directory
,
const
char
*
name
,
const
char
*
suffix
,
const
StorageFileInfo
&
info
);
const
StorageFileInfo
&
info
)
noexcept
;
bool
UpdateSongFile
(
Directory
&
directory
,
const
char
*
name
,
const
char
*
suffix
,
const
StorageFileInfo
&
info
);
const
StorageFileInfo
&
info
)
noexcept
;
bool
UpdateContainerFile
(
Directory
&
directory
,
const
char
*
name
,
const
char
*
suffix
,
const
StorageFileInfo
&
info
);
const
StorageFileInfo
&
info
)
noexcept
;
#ifdef ENABLE_ARCHIVE
void
UpdateArchiveTree
(
ArchiveFile
&
archive
,
Directory
&
parent
,
const
char
*
name
);
const
char
*
name
)
noexcept
;
bool
UpdateArchiveFile
(
Directory
&
directory
,
const
char
*
name
,
const
char
*
suffix
,
const
StorageFileInfo
&
info
);
const
StorageFileInfo
&
info
)
noexcept
;
void
UpdateArchiveFile
(
Directory
&
directory
,
const
char
*
name
,
const
StorageFileInfo
&
info
,
const
ArchivePlugin
&
plugin
);
const
ArchivePlugin
&
plugin
)
noexcept
;
#else
bool
UpdateArchiveFile
(
gcc_unused
Directory
&
directory
,
gcc_unused
const
char
*
name
,
gcc_unused
const
char
*
suffix
,
gcc_unused
const
StorageFileInfo
&
info
)
{
gcc_unused
const
StorageFileInfo
&
info
)
noexcept
{
return
false
;
}
#endif
bool
UpdatePlaylistFile
(
Directory
&
directory
,
const
char
*
name
,
const
char
*
suffix
,
const
StorageFileInfo
&
info
);
const
StorageFileInfo
&
info
)
noexcept
;
bool
UpdateRegularFile
(
Directory
&
directory
,
const
char
*
name
,
const
StorageFileInfo
&
info
);
const
char
*
name
,
const
StorageFileInfo
&
info
)
noexcept
;
void
UpdateDirectoryChild
(
Directory
&
directory
,
const
ExcludeList
&
exclude_list
,
const
char
*
name
,
const
StorageFileInfo
&
info
);
const
StorageFileInfo
&
info
)
noexcept
;
bool
UpdateDirectory
(
Directory
&
directory
,
const
ExcludeList
&
exclude_list
,
const
StorageFileInfo
&
info
);
const
StorageFileInfo
&
info
)
noexcept
;
/**
* Create the specified directory object if it does not exist
...
...
@@ -147,16 +147,16 @@ private:
* The caller must lock the database.
*/
Directory
*
MakeDirectoryIfModified
(
Directory
&
parent
,
const
char
*
name
,
const
StorageFileInfo
&
info
);
const
StorageFileInfo
&
info
)
noexcept
;
Directory
*
DirectoryMakeChildChecked
(
Directory
&
parent
,
const
char
*
uri_utf8
,
const
char
*
name_utf8
);
const
char
*
name_utf8
)
noexcept
;
Directory
*
DirectoryMakeUriParentChecked
(
Directory
&
root
,
const
char
*
uri
);
const
char
*
uri
)
noexcept
;
void
UpdateUri
(
Directory
&
root
,
const
char
*
uri
);
void
UpdateUri
(
Directory
&
root
,
const
char
*
uri
)
noexcept
;
};
#endif
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