Jan Beich 2017-01-24 14:00:34 +00:00
parent 911a5e4d17
commit 633ff47035
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=432339
4 changed files with 72 additions and 8 deletions

View file

@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= zimg
PORTVERSION= 2.3
PORTVERSION= 2.4
DISTVERSIONPREFIX= release-
CATEGORIES= graphics
PKGNAMEPREFIX= ${GH_ACCOUNT}-
@ -21,6 +21,8 @@ CONFLICTS_INSTALL= zimg-[0-9]* # include/zimg.h
USES= autoreconf compiler:c++11-lib gmake libtool pathfix
EXTRACT_AFTER_ARGS= --exclude test/extra
EXTRA_PATCHES+= ${EXTRA_PATCHES_${OPSYS}_${OSREL}}
EXTRA_PATCHES_FreeBSD_10.3= ${PATCHDIR}/extra-patch-src_zimg_api_zimg.cpp
GNU_CONFIGURE= yes
CPPFLAGS+= -D_GLIBCXX_USE_C99 -D_GLIBCXX_USE_C99_MATH_TR1 \
-D_DECLARE_C99_LDBL_MATH # XXX ports/193528

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1475114874
SHA256 (sekrit-twc-zimg-release-2.3_GH0.tar.gz) = 09962385f986dbcfd8ed6160cdafc2bc57bef8c6bfb3ca3a4bcaa482f09c06fa
SIZE (sekrit-twc-zimg-release-2.3_GH0.tar.gz) = 188682
TIMESTAMP = 1485025143
SHA256 (sekrit-twc-zimg-release-2.4_GH0.tar.gz) = 996ea0e446df6ff4d6cb9c04a77d60978eca47c32d3785cd63fe8c29a9523d1f
SIZE (sekrit-twc-zimg-release-2.4_GH0.tar.gz) = 193791

View file

@ -0,0 +1,62 @@
FreeBSD 10.3 lacks __cxa_thread_atexit, so revert
https://github.com/sekrit-twc/zimg/commit/7e47d8d2a892
--- src/zimg/api/zimg.cpp.orig 2017-01-21 18:59:03 UTC
+++ src/zimg/api/zimg.cpp
@@ -1,6 +1,5 @@
#include <cmath>
#include <memory>
-#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
@@ -31,7 +30,7 @@ constexpr unsigned API_VERSION_2_2 = ZIM
#define STRIDE_ALIGNMENT_ASSERT(x) zassert_d(!(x) || (x) % zimg::ALIGNMENT == 0, "buffer stride not aligned")
thread_local zimg_error_code_e g_last_error = ZIMG_ERROR_SUCCESS;
-thread_local std::string g_last_error_msg;
+thread_local char g_last_error_msg[1024];
constexpr unsigned VERSION_INFO[] = { 2, 4, 0 };
@@ -43,19 +42,10 @@ T *assert_dynamic_type(U *ptr) noexcept
return static_cast<T *>(ptr);
}
-void clear_last_error_message() noexcept
-{
- g_last_error_msg.clear();
- g_last_error_msg.shrink_to_fit();
-}
-
void record_exception_message(const zimg::error::Exception &e) noexcept
{
- try {
- g_last_error_msg = e.what();
- } catch (const std::bad_alloc &) {
- clear_last_error_message();
- }
+ strncpy(g_last_error_msg, e.what(), sizeof(g_last_error_msg) - 1);
+ g_last_error_msg[sizeof(g_last_error_msg) - 1] = '\0';
}
zimg_error_code_e handle_exception(std::exception_ptr eptr) noexcept
@@ -438,7 +428,7 @@ unsigned zimg_get_api_version(unsigned *
zimg_error_code_e zimg_get_last_error(char *err_msg, size_t n)
{
if (err_msg && n) {
- std::strncpy(err_msg, g_last_error_msg.c_str(), n);
+ strncpy(err_msg, g_last_error_msg, n);
err_msg[n - 1] = '\0';
}
@@ -447,8 +437,8 @@ zimg_error_code_e zimg_get_last_error(ch
void zimg_clear_last_error(void)
{
+ g_last_error_msg[0] = '\0';
g_last_error = ZIMG_ERROR_SUCCESS;
- clear_last_error_message();
}
unsigned zimg_select_buffer_mask(unsigned count)

View file

@ -23,11 +23,11 @@ test/resize/resize_impl_test.cpp:37:3: error: no matching conversion for functio
^
1 error generated.
--- test/resize/resize_impl_test.cpp.orig 2016-01-22 18:12:28 UTC
--- test/resize/resize_impl_test.cpp.orig 2017-01-21 18:59:03 UTC
+++ test/resize/resize_impl_test.cpp
@@ -34,7 +34,7 @@ void test_case(const zimg::PixelFormat &
set_shift(shift).
set_subwidth(subwidth_factor * (horizontal ? src_w : src_h)).create();
@@ -35,7 +35,7 @@ void test_case(const zimg::PixelFormat &
.set_subwidth(subwidth_factor * (horizontal ? src_w : src_h))
.create();
- ASSERT_TRUE(filter);
+ ASSERT_TRUE(static_cast<bool>(filter));