summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Zern <jzern@google.com>2020-01-17 23:15:19 -0800
committerJames Zern <jzern@google.com>2020-01-17 23:17:46 -0800
commitbc9b7f50bb0241f774fab701d66fa5a02157ad27 (patch)
tree88032c974bb5f42fd3b77986ac38c564b81d1692
parent49aa77c61fc1d2dc369594fb19c3165f9c56bd18 (diff)
downloadlibvpx-bc9b7f50bb0241f774fab701d66fa5a02157ad27.tar
libvpx-bc9b7f50bb0241f774fab701d66fa5a02157ad27.tar.gz
libvpx-bc9b7f50bb0241f774fab701d66fa5a02157ad27.tar.bz2
libvpx-bc9b7f50bb0241f774fab701d66fa5a02157ad27.zip
add static_assert.h
unify COMPILE_TIME_ASSERT definitions and rename to VPX_STATIC_ASSERT Change-Id: Id51150c204e0c4eaf355ee45b20915113209d524
-rw-r--r--vp8/vp8_cx_iface.c21
-rw-r--r--vp9/vp9_cx_iface.c21
-rw-r--r--vpx_ports/static_assert.h30
-rw-r--r--vpx_ports/vpx_ports.mk1
4 files changed, 37 insertions, 36 deletions
diff --git a/vp8/vp8_cx_iface.c b/vp8/vp8_cx_iface.c
index 07ea52c05..8f7617abf 100644
--- a/vp8/vp8_cx_iface.c
+++ b/vp8/vp8_cx_iface.c
@@ -16,6 +16,7 @@
#include "vpx/internal/vpx_codec_internal.h"
#include "vpx_version.h"
#include "vpx_mem/vpx_mem.h"
+#include "vpx_ports/static_assert.h"
#include "vpx_ports/system_state.h"
#include "vpx_ports/vpx_once.h"
#include "vpx_util/vpx_timestamp.h"
@@ -131,22 +132,6 @@ static vpx_codec_err_t update_error_state(
if (!!((p)->memb) != (p)->memb) ERROR(#memb " expected boolean"); \
} while (0)
-#if defined(_MSC_VER)
-#define COMPILE_TIME_ASSERT(boolexp) \
- do { \
- char compile_time_assert[(boolexp) ? 1 : -1]; \
- (void)compile_time_assert; \
- } while (0)
-#else /* !_MSC_VER */
-#define COMPILE_TIME_ASSERT(boolexp) \
- do { \
- struct { \
- unsigned int compile_time_assert : (boolexp) ? 1 : -1; \
- } compile_time_assert; \
- (void)compile_time_assert; \
- } while (0)
-#endif /* _MSC_VER */
-
static vpx_codec_err_t validate_config(vpx_codec_alg_priv_t *ctx,
const vpx_codec_enc_cfg_t *cfg,
const struct vp8_extracfg *vp8_cfg,
@@ -751,8 +736,8 @@ static void pick_quickcompress_mode(vpx_codec_alg_priv_t *ctx,
/* Convert duration parameter from stream timebase to microseconds */
uint64_t duration_us;
- COMPILE_TIME_ASSERT(TICKS_PER_SEC > 1000000 &&
- (TICKS_PER_SEC % 1000000) == 0);
+ VPX_STATIC_ASSERT(TICKS_PER_SEC > 1000000 &&
+ (TICKS_PER_SEC % 1000000) == 0);
duration_us = duration * (uint64_t)ctx->timestamp_ratio.num /
(ctx->timestamp_ratio.den * (TICKS_PER_SEC / 1000000));
diff --git a/vp9/vp9_cx_iface.c b/vp9/vp9_cx_iface.c
index baea0ece1..0709c6428 100644
--- a/vp9/vp9_cx_iface.c
+++ b/vp9/vp9_cx_iface.c
@@ -15,6 +15,7 @@
#include "vpx/vpx_encoder.h"
#include "vpx_dsp/psnr.h"
#include "vpx_ports/vpx_once.h"
+#include "vpx_ports/static_assert.h"
#include "vpx_ports/system_state.h"
#include "vpx_util/vpx_timestamp.h"
#include "vpx/internal/vpx_codec_internal.h"
@@ -160,22 +161,6 @@ static vpx_codec_err_t update_error_state(
if (!!((p)->memb) != (p)->memb) ERROR(#memb " expected boolean"); \
} while (0)
-#if defined(_MSC_VER)
-#define COMPILE_TIME_ASSERT(boolexp) \
- do { \
- char compile_time_assert[(boolexp) ? 1 : -1]; \
- (void)compile_time_assert; \
- } while (0)
-#else // !_MSC_VER
-#define COMPILE_TIME_ASSERT(boolexp) \
- do { \
- struct { \
- unsigned int compile_time_assert : (boolexp) ? 1 : -1; \
- } compile_time_assert; \
- (void)compile_time_assert; \
- } while (0)
-#endif // _MSC_VER
-
static vpx_codec_err_t validate_config(vpx_codec_alg_priv_t *ctx,
const vpx_codec_enc_cfg_t *cfg,
const struct vp9_extracfg *extra_cfg) {
@@ -968,8 +953,8 @@ static void pick_quickcompress_mode(vpx_codec_alg_priv_t *ctx,
// Convert duration parameter from stream timebase to microseconds.
uint64_t duration_us;
- COMPILE_TIME_ASSERT(TICKS_PER_SEC > 1000000 &&
- (TICKS_PER_SEC % 1000000) == 0);
+ VPX_STATIC_ASSERT(TICKS_PER_SEC > 1000000 &&
+ (TICKS_PER_SEC % 1000000) == 0);
duration_us = duration * (uint64_t)ctx->timestamp_ratio.num /
(ctx->timestamp_ratio.den * (TICKS_PER_SEC / 1000000));
diff --git a/vpx_ports/static_assert.h b/vpx_ports/static_assert.h
new file mode 100644
index 000000000..f632d9f1e
--- /dev/null
+++ b/vpx_ports/static_assert.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2020 The WebM project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef VPX_VPX_PORTS_STATIC_ASSERT_H_
+#define VPX_VPX_PORTS_STATIC_ASSERT_H_
+
+#if defined(_MSC_VER)
+#define VPX_STATIC_ASSERT(boolexp) \
+ do { \
+ char vpx_static_assert[(boolexp) ? 1 : -1]; \
+ (void)vpx_static_assert; \
+ } while (0)
+#else // !_MSC_VER
+#define VPX_STATIC_ASSERT(boolexp) \
+ do { \
+ struct { \
+ unsigned int vpx_static_assert : (boolexp) ? 1 : -1; \
+ } vpx_static_assert; \
+ (void)vpx_static_assert; \
+ } while (0)
+#endif // _MSC_VER
+
+#endif // VPX_VPX_PORTS_STATIC_ASSERT_H_
diff --git a/vpx_ports/vpx_ports.mk b/vpx_ports/vpx_ports.mk
index ef17f0ad2..53fbd1e80 100644
--- a/vpx_ports/vpx_ports.mk
+++ b/vpx_ports/vpx_ports.mk
@@ -14,6 +14,7 @@ PORTS_SRCS-yes += vpx_ports.mk
PORTS_SRCS-yes += bitops.h
PORTS_SRCS-yes += mem.h
PORTS_SRCS-yes += msvc.h
+PORTS_SRCS-yes += static_assert.h
PORTS_SRCS-yes += system_state.h
PORTS_SRCS-yes += vpx_timer.h