fs/Limits: convert macro to "constexpr"

This commit is contained in:
Max Kellermann 2013-10-17 22:03:58 +02:00
parent 354b5a9365
commit 4817437d31
4 changed files with 12 additions and 13 deletions

View File

@ -384,7 +384,7 @@ spl_append_song(const char *utf8path, Song *song, Error &error)
return false;
}
if (st.st_size / (MPD_PATH_MAX + 1) >= (off_t)playlist_max_length) {
if (st.st_size / off_t(MPD_PATH_MAX + 1) >= (off_t)playlist_max_length) {
fclose(file);
error.Set(playlist_domain, PLAYLIST_RESULT_TOO_LARGE,
"Stored playlist is too large");

View File

@ -34,7 +34,7 @@ Path ReadLink(const Path &path)
ssize_t size = readlink(path.c_str(), buffer, MPD_PATH_MAX);
if (size < 0)
return Path::Null();
if (size >= MPD_PATH_MAX) {
if (size_t(size) >= MPD_PATH_MAX) {
errno = ENOMEM;
return Path::Null();
}

View File

@ -22,18 +22,17 @@
#include "check.h"
#include <stddef.h>
#include <limits.h>
#if !defined(MPD_PATH_MAX)
# if defined(WIN32)
# define MPD_PATH_MAX 260
# elif defined(MAXPATHLEN)
# define MPD_PATH_MAX MAXPATHLEN
# elif defined(PATH_MAX)
# define MPD_PATH_MAX PATH_MAX
# else
# define MPD_PATH_MAX 256
# endif
#if defined(WIN32)
static constexpr size_t MPD_PATH_MAX = 260;
#elif defined(MAXPATHLEN)
static constexpr size_t MPD_PATH_MAX = MAXPATHLEN;
#elif defined(PATH_MAX)
static constexpr size_t MPD_PATH_MAX = PATH_MAX;
#else
static constexpr size_t MPD_PATH_MAX = 256;
#endif
#endif

View File

@ -45,7 +45,7 @@
* and assumption that some weird encoding could represent some UTF-8 4 byte
* sequences with single byte.
*/
#define MPD_PATH_MAX_UTF8 ((MPD_PATH_MAX - 1) * 4 + 1)
static constexpr size_t MPD_PATH_MAX_UTF8 = (MPD_PATH_MAX - 1) * 4 + 1;
const Domain path_domain("path");