Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorSybren A. Stüvel <sybren@stuvel.eu>2017-02-08 15:10:16 +0300
committerSybren A. Stüvel <sybren@stuvel.eu>2017-02-08 15:10:16 +0300
commitd4913af84660318047e3404f9766014cd78864ab (patch)
tree216516057dc8df5177e4f179392de5a79811ba3f /intern
parentc973e8d2da5cf3f615256269128a07390f8c06a9 (diff)
parent8cda364d6f2e6e8da454034f19fb959739045813 (diff)
Merge branch 'master' into blender2.8
# Conflicts: # source/blender/blenloader/intern/writefile.c
Diffstat (limited to 'intern')
-rw-r--r--intern/CMakeLists.txt2
-rw-r--r--intern/cycles/kernel/svm/svm_math_util.h53
-rw-r--r--intern/cycles/test/render_graph_finalize_test.cpp6
-rw-r--r--intern/cycles/test/util_aligned_malloc_test.cpp2
-rw-r--r--intern/cycles/test/util_path_test.cpp100
-rw-r--r--intern/cycles/test/util_string_test.cpp64
-rw-r--r--intern/utfconv/utfconv.h2
7 files changed, 117 insertions, 112 deletions
diff --git a/intern/CMakeLists.txt b/intern/CMakeLists.txt
index 9a5476772ab..dd9889c81ba 100644
--- a/intern/CMakeLists.txt
+++ b/intern/CMakeLists.txt
@@ -62,7 +62,7 @@ if(WITH_IK_ITASC)
add_subdirectory(itasc)
endif()
-if(WITH_IK_SOLVER OR WITH_GAMEENGINE OR WITH_MOD_BOOLEAN)
+if(WITH_GAMEENGINE)
add_subdirectory(moto)
endif()
diff --git a/intern/cycles/kernel/svm/svm_math_util.h b/intern/cycles/kernel/svm/svm_math_util.h
index 01547b60014..a7f15de7325 100644
--- a/intern/cycles/kernel/svm/svm_math_util.h
+++ b/intern/cycles/kernel/svm/svm_math_util.h
@@ -134,32 +134,37 @@ ccl_device float3 svm_math_blackbody_color(float t) {
{ 6.72595954e-13f, -2.73059993e-08f, 4.24068546e-04f, -7.52204323e-01f },
};
- if(t >= 12000.0f)
+ int i;
+ if(t >= 12000.0f) {
return make_float3(0.826270103f, 0.994478524f, 1.56626022f);
+ }
+ else if(t >= 6365.0f) {
+ i = 5;
+ }
+ else if(t >= 3315.0f) {
+ i = 4;
+ }
+ else if(t >= 1902.0f) {
+ i = 3;
+ }
+ else if(t >= 1449.0f) {
+ i = 2;
+ }
+ else if(t >= 1167.0f) {
+ i = 1;
+ }
+ else if(t >= 965.0f) {
+ i = 0;
+ }
+ else {
+ /* For 800 <= t < 965 color does not change in OSL implementation, so keep color the same */
+ return make_float3(4.70366907f, 0.0f, 0.0f);
+ }
- /* Define a macro to reduce stack usage for nvcc */
-#define MAKE_BB_RGB(i) make_float3(\
- rc[i][0] / t + rc[i][1] * t + rc[i][2],\
- gc[i][0] / t + gc[i][1] * t + gc[i][2],\
- ((bc[i][0] * t + bc[i][1]) * t + bc[i][2]) * t + bc[i][3])
-
- if(t >= 6365.0f)
- return MAKE_BB_RGB(5);
- if(t >= 3315.0f)
- return MAKE_BB_RGB(4);
- if(t >= 1902.0f)
- return MAKE_BB_RGB(3);
- if(t >= 1449.0f)
- return MAKE_BB_RGB(2);
- if(t >= 1167.0f)
- return MAKE_BB_RGB(1);
- if(t >= 965.0f)
- return MAKE_BB_RGB(0);
-
-#undef MAKE_BB_RGB
-
- /* For 800 <= t < 965 color does not change in OSL implementation, so keep color the same */
- return make_float3(4.70366907f, 0.0f, 0.0f);
+ const float t_inv = 1.0f / t;
+ return make_float3(rc[i][0] * t_inv + rc[i][1] * t + rc[i][2],
+ gc[i][0] * t_inv + gc[i][1] * t + gc[i][2],
+ ((bc[i][0] * t + bc[i][1]) * t + bc[i][2]) * t + bc[i][3]);
}
ccl_device_inline float3 svm_math_gamma_color(float3 color, float gamma)
diff --git a/intern/cycles/test/render_graph_finalize_test.cpp b/intern/cycles/test/render_graph_finalize_test.cpp
index 32b4c7265ee..3fc086cbc0c 100644
--- a/intern/cycles/test/render_graph_finalize_test.cpp
+++ b/intern/cycles/test/render_graph_finalize_test.cpp
@@ -92,7 +92,7 @@ public:
template<typename T>
ShaderGraphBuilder& add_node(const T& node)
{
- EXPECT_EQ(NULL, find_node(node.name()));
+ EXPECT_EQ(find_node(node.name()), (void*)NULL);
graph_->add(node.node());
node_map_[node.name()] = node.node();
return *this;
@@ -104,8 +104,8 @@ public:
vector<string> tokens_from, tokens_to;
string_split(tokens_from, from, "::");
string_split(tokens_to, to, "::");
- EXPECT_EQ(2, tokens_from.size());
- EXPECT_EQ(2, tokens_to.size());
+ EXPECT_EQ(tokens_from.size(), 2);
+ EXPECT_EQ(tokens_to.size(), 2);
ShaderNode *node_from = find_node(tokens_from[0]),
*node_to = find_node(tokens_to[0]);
EXPECT_NE((void*)NULL, node_from);
diff --git a/intern/cycles/test/util_aligned_malloc_test.cpp b/intern/cycles/test/util_aligned_malloc_test.cpp
index 479070f0513..9fb3aad0c3f 100644
--- a/intern/cycles/test/util_aligned_malloc_test.cpp
+++ b/intern/cycles/test/util_aligned_malloc_test.cpp
@@ -18,7 +18,7 @@
#include "util/util_aligned_malloc.h"
-#define CHECK_ALIGNMENT(ptr, align) EXPECT_EQ(0, (size_t)ptr % align)
+#define CHECK_ALIGNMENT(ptr, align) EXPECT_EQ((size_t)ptr % align, 0)
CCL_NAMESPACE_BEGIN
diff --git a/intern/cycles/test/util_path_test.cpp b/intern/cycles/test/util_path_test.cpp
index 92be1dd4cbe..c2f400c105d 100644
--- a/intern/cycles/test/util_path_test.cpp
+++ b/intern/cycles/test/util_path_test.cpp
@@ -26,63 +26,63 @@ CCL_NAMESPACE_BEGIN
TEST(util_path_filename, simple_unix)
{
string str = path_filename("/tmp/foo.txt");
- EXPECT_EQ("foo.txt", str);
+ EXPECT_EQ(str, "foo.txt");
}
TEST(util_path_filename, root_unix)
{
string str = path_filename("/");
- EXPECT_EQ("/", str);
+ EXPECT_EQ(str, "/");
}
TEST(util_path_filename, last_slash_unix)
{
string str = path_filename("/tmp/foo.txt/");
- EXPECT_EQ(".", str);
+ EXPECT_EQ(str, ".");
}
TEST(util_path_filename, alternate_slash_unix)
{
string str = path_filename("/tmp\\foo.txt");
- EXPECT_EQ("tmp\\foo.txt", str);
+ EXPECT_EQ(str, "tmp\\foo.txt");
}
#endif /* !_WIN32 */
TEST(util_path_filename, file_only)
{
string str = path_filename("foo.txt");
- EXPECT_EQ("foo.txt", str);
+ EXPECT_EQ(str, "foo.txt");
}
TEST(util_path_filename, empty)
{
string str = path_filename("");
- EXPECT_EQ("", str);
+ EXPECT_EQ(str, "");
}
#ifdef _WIN32
TEST(util_path_filename, simple_windows)
{
string str = path_filename("C:\\tmp\\foo.txt");
- EXPECT_EQ("foo.txt", str);
+ EXPECT_EQ(str, "foo.txt");
}
TEST(util_path_filename, root_windows)
{
string str = path_filename("C:\\");
- EXPECT_EQ("\\", str);
+ EXPECT_EQ(str, "\\");
}
TEST(util_path_filename, last_slash_windows)
{
string str = path_filename("C:\\tmp\\foo.txt\\");
- EXPECT_EQ(".", str);
+ EXPECT_EQ(str, ".");
}
TEST(util_path_filename, alternate_slash_windows)
{
string str = path_filename("C:\\tmp/foo.txt");
- EXPECT_EQ("foo.txt", str);
+ EXPECT_EQ(str, "foo.txt");
}
#endif /* _WIN32 */
@@ -92,63 +92,63 @@ TEST(util_path_filename, alternate_slash_windows)
TEST(util_path_dirname, simple_unix)
{
string str = path_dirname("/tmp/foo.txt");
- EXPECT_EQ("/tmp", str);
+ EXPECT_EQ(str, "/tmp");
}
TEST(util_path_dirname, root_unix)
{
string str = path_dirname("/");
- EXPECT_EQ("", str);
+ EXPECT_EQ(str, "");
}
TEST(util_path_dirname, last_slash_unix)
{
string str = path_dirname("/tmp/foo.txt/");
- EXPECT_EQ("/tmp/foo.txt", str);
+ EXPECT_EQ(str, "/tmp/foo.txt");
}
TEST(util_path_dirname, alternate_slash_unix)
{
string str = path_dirname("/tmp\\foo.txt");
- EXPECT_EQ("/", str);
+ EXPECT_EQ(str, "/");
}
#endif /* !_WIN32 */
TEST(util_path_dirname, file_only)
{
string str = path_dirname("foo.txt");
- EXPECT_EQ("", str);
+ EXPECT_EQ(str, "");
}
TEST(util_path_dirname, empty)
{
string str = path_dirname("");
- EXPECT_EQ("", str);
+ EXPECT_EQ(str, "");
}
#ifdef _WIN32
TEST(util_path_dirname, simple_windows)
{
string str = path_dirname("C:\\tmp\\foo.txt");
- EXPECT_EQ("C:\\tmp", str);
+ EXPECT_EQ(str, "C:\\tmp");
}
TEST(util_path_dirname, root_windows)
{
string str = path_dirname("C:\\");
- EXPECT_EQ("C:", str);
+ EXPECT_EQ(str, "C:");
}
TEST(util_path_dirname, last_slash_windows)
{
string str = path_dirname("C:\\tmp\\foo.txt\\");
- EXPECT_EQ("C:\\tmp\\foo.txt", str);
+ EXPECT_EQ(str, "C:\\tmp\\foo.txt");
}
TEST(util_path_dirname, alternate_slash_windows)
{
string str = path_dirname("C:\\tmp/foo.txt");
- EXPECT_EQ("C:\\tmp", str);
+ EXPECT_EQ(str, "C:\\tmp");
}
#endif /* _WIN32 */
@@ -157,152 +157,152 @@ TEST(util_path_dirname, alternate_slash_windows)
TEST(util_path_join, empty_both)
{
string str = path_join("", "");
- EXPECT_EQ("", str);
+ EXPECT_EQ(str, "");
}
TEST(util_path_join, empty_directory)
{
string str = path_join("", "foo.txt");
- EXPECT_EQ("foo.txt", str);
+ EXPECT_EQ(str, "foo.txt");
}
TEST(util_path_join, empty_filename)
{
string str = path_join("foo", "");
- EXPECT_EQ("foo", str);
+ EXPECT_EQ(str, "foo");
}
#ifndef _WIN32
TEST(util_path_join, simple_unix)
{
string str = path_join("foo", "bar");
- EXPECT_EQ("foo/bar", str);
+ EXPECT_EQ(str, "foo/bar");
}
TEST(util_path_join, directory_slash_unix)
{
string str = path_join("foo/", "bar");
- EXPECT_EQ("foo/bar", str);
+ EXPECT_EQ(str, "foo/bar");
}
TEST(util_path_join, filename_slash_unix)
{
string str = path_join("foo", "/bar");
- EXPECT_EQ("foo/bar", str);
+ EXPECT_EQ(str, "foo/bar");
}
TEST(util_path_join, both_slash_unix)
{
string str = path_join("foo/", "/bar");
- EXPECT_EQ("foo//bar", str);
+ EXPECT_EQ(str, "foo//bar");
}
TEST(util_path_join, directory_alternate_slash_unix)
{
string str = path_join("foo\\", "bar");
- EXPECT_EQ("foo\\/bar", str);
+ EXPECT_EQ(str, "foo\\/bar");
}
TEST(util_path_join, filename_alternate_slash_unix)
{
string str = path_join("foo", "\\bar");
- EXPECT_EQ("foo/\\bar", str);
+ EXPECT_EQ(str, "foo/\\bar");
}
TEST(util_path_join, both_alternate_slash_unix)
{
string str = path_join("foo", "\\bar");
- EXPECT_EQ("foo/\\bar", str);
+ EXPECT_EQ(str, "foo/\\bar");
}
TEST(util_path_join, empty_dir_filename_slash_unix)
{
string str = path_join("", "/foo.txt");
- EXPECT_EQ("/foo.txt", str);
+ EXPECT_EQ(str, "/foo.txt");
}
TEST(util_path_join, empty_dir_filename_alternate_slash_unix)
{
string str = path_join("", "\\foo.txt");
- EXPECT_EQ("\\foo.txt", str);
+ EXPECT_EQ(str, "\\foo.txt");
}
TEST(util_path_join, empty_filename_dir_slash_unix)
{
string str = path_join("foo/", "");
- EXPECT_EQ("foo/", str);
+ EXPECT_EQ(str, "foo/");
}
TEST(util_path_join, empty_filename_dir_alternate_slash_unix)
{
string str = path_join("foo\\", "");
- EXPECT_EQ("foo\\", str);
+ EXPECT_EQ(str, "foo\\");
}
#else /* !_WIN32 */
TEST(util_path_join, simple_windows)
{
string str = path_join("foo", "bar");
- EXPECT_EQ("foo\\bar", str);
+ EXPECT_EQ(str, "foo\\bar");
}
TEST(util_path_join, directory_slash_windows)
{
string str = path_join("foo\\", "bar");
- EXPECT_EQ("foo\\bar", str);
+ EXPECT_EQ(str, "foo\\bar");
}
TEST(util_path_join, filename_slash_windows)
{
string str = path_join("foo", "\\bar");
- EXPECT_EQ("foo\\bar", str);
+ EXPECT_EQ(str, "foo\\bar");
}
TEST(util_path_join, both_slash_windows)
{
string str = path_join("foo\\", "\\bar");
- EXPECT_EQ("foo\\\\bar", str);
+ EXPECT_EQ(str, "foo\\\\bar");
}
TEST(util_path_join, directory_alternate_slash_windows)
{
string str = path_join("foo/", "bar");
- EXPECT_EQ("foo/bar", str);
+ EXPECT_EQ(str, "foo/bar");
}
TEST(util_path_join, filename_alternate_slash_windows)
{
string str = path_join("foo", "/bar");
- EXPECT_EQ("foo/bar", str);
+ EXPECT_EQ(str, "foo/bar");
}
TEST(util_path_join, both_alternate_slash_windows)
{
string str = path_join("foo/", "/bar");
- EXPECT_EQ("foo//bar", str);
+ EXPECT_EQ(str, "foo//bar");
}
TEST(util_path_join, empty_dir_filename_slash_windows)
{
string str = path_join("", "\\foo.txt");
- EXPECT_EQ("\\foo.txt", str);
+ EXPECT_EQ(str, "\\foo.txt");
}
TEST(util_path_join, empty_dir_filename_alternate_slash_windows)
{
string str = path_join("", "/foo.txt");
- EXPECT_EQ("/foo.txt", str);
+ EXPECT_EQ(str, "/foo.txt");
}
TEST(util_path_join, empty_filename_dir_slash_windows)
{
string str = path_join("foo\\", "");
- EXPECT_EQ("foo\\", str);
+ EXPECT_EQ(str, "foo\\");
}
TEST(util_path_join, empty_filename_dir_alternate_slash_windows)
{
string str = path_join("foo/", "");
- EXPECT_EQ("foo/", str);
+ EXPECT_EQ(str, "foo/");
}
#endif /* !_WIN32 */
@@ -311,31 +311,31 @@ TEST(util_path_join, empty_filename_dir_alternate_slash_windows)
TEST(util_path_escape, no_escape_chars)
{
string str = path_escape("/tmp/foo/bar");
- EXPECT_EQ("/tmp/foo/bar", str);
+ EXPECT_EQ(str, "/tmp/foo/bar");
}
TEST(util_path_escape, simple)
{
string str = path_escape("/tmp/foo bar");
- EXPECT_EQ("/tmp/foo\\ bar", str);
+ EXPECT_EQ(str, "/tmp/foo\\ bar");
}
TEST(util_path_escape, simple_end)
{
string str = path_escape("/tmp/foo/bar ");
- EXPECT_EQ("/tmp/foo/bar\\ ", str);
+ EXPECT_EQ(str, "/tmp/foo/bar\\ ");
}
TEST(util_path_escape, multiple)
{
string str = path_escape("/tmp/foo bar");
- EXPECT_EQ("/tmp/foo\\ \\ bar", str);
+ EXPECT_EQ(str, "/tmp/foo\\ \\ bar");
}
TEST(util_path_escape, simple_multiple_end)
{
string str = path_escape("/tmp/foo/bar ");
- EXPECT_EQ("/tmp/foo/bar\\ \\ ", str);
+ EXPECT_EQ(str, "/tmp/foo/bar\\ \\ ");
}
/* ******** Tests for path_is_relative() ******** */
diff --git a/intern/cycles/test/util_string_test.cpp b/intern/cycles/test/util_string_test.cpp
index e502a35704b..22ec8e0ee8e 100644
--- a/intern/cycles/test/util_string_test.cpp
+++ b/intern/cycles/test/util_string_test.cpp
@@ -25,25 +25,25 @@ CCL_NAMESPACE_BEGIN
TEST(util_string_printf, no_format)
{
string str = string_printf("foo bar");
- EXPECT_EQ(str, "foo bar");
+ EXPECT_EQ("foo bar", str);
}
TEST(util_string_printf, int_number)
{
string str = string_printf("foo %d bar", 314);
- EXPECT_EQ(str, "foo 314 bar");
+ EXPECT_EQ("foo 314 bar", str);
}
TEST(util_string_printf, float_number_default_precision)
{
string str = string_printf("foo %f bar", 3.1415);
- EXPECT_EQ(str, "foo 3.141500 bar");
+ EXPECT_EQ("foo 3.141500 bar", str);
}
TEST(util_string_printf, float_number_custom_precision)
{
string str = string_printf("foo %.1f bar", 3.1415);
- EXPECT_EQ(str, "foo 3.1 bar");
+ EXPECT_EQ("foo 3.1 bar", str);
}
/* ******** Tests for string_printf() ******** */
@@ -78,44 +78,44 @@ TEST(util_string_split, empty)
{
vector<string> tokens;
string_split(tokens, "");
- EXPECT_EQ(0, tokens.size());
+ EXPECT_EQ(tokens.size(), 0);
}
TEST(util_string_split, only_spaces)
{
vector<string> tokens;
string_split(tokens, " \t\t \t");
- EXPECT_EQ(0, tokens.size());
+ EXPECT_EQ(tokens.size(), 0);
}
TEST(util_string_split, single)
{
vector<string> tokens;
string_split(tokens, "foo");
- EXPECT_EQ(1, tokens.size());
- EXPECT_EQ("foo", tokens[0]);
+ EXPECT_EQ(tokens.size(), 1);
+ EXPECT_EQ(tokens[0], "foo");
}
TEST(util_string_split, simple)
{
vector<string> tokens;
string_split(tokens, "foo a bar b");
- EXPECT_EQ(4, tokens.size());
- EXPECT_EQ("foo", tokens[0]);
- EXPECT_EQ("a", tokens[1]);
- EXPECT_EQ("bar", tokens[2]);
- EXPECT_EQ("b", tokens[3]);
+ EXPECT_EQ(tokens.size(), 4);
+ EXPECT_EQ(tokens[0], "foo");
+ EXPECT_EQ(tokens[1], "a");
+ EXPECT_EQ(tokens[2], "bar");
+ EXPECT_EQ(tokens[3], "b");
}
TEST(util_string_split, multiple_spaces)
{
vector<string> tokens;
string_split(tokens, " \t foo \ta bar b\t ");
- EXPECT_EQ(4, tokens.size());
- EXPECT_EQ("foo", tokens[0]);
- EXPECT_EQ("a", tokens[1]);
- EXPECT_EQ("bar", tokens[2]);
- EXPECT_EQ("b", tokens[3]);
+ EXPECT_EQ(tokens.size(), 4);
+ EXPECT_EQ(tokens[0], "foo");
+ EXPECT_EQ(tokens[1], "a");
+ EXPECT_EQ(tokens[2], "bar");
+ EXPECT_EQ(tokens[3], "b");
}
/* ******** Tests for string_replace() ******** */
@@ -124,35 +124,35 @@ TEST(util_string_replace, empty_haystack_and_other)
{
string str = "";
string_replace(str, "x", "");
- EXPECT_EQ("", str);
+ EXPECT_EQ(str, "");
}
TEST(util_string_replace, empty_haystack)
{
string str = "";
string_replace(str, "x", "y");
- EXPECT_EQ("", str);
+ EXPECT_EQ(str, "");
}
TEST(util_string_replace, empty_other)
{
string str = "x";
string_replace(str, "x", "");
- EXPECT_EQ("", str);
+ EXPECT_EQ(str, "");
}
TEST(util_string_replace, long_haystack_empty_other)
{
string str = "a x b xxc";
string_replace(str, "x", "");
- EXPECT_EQ("a b c", str);
+ EXPECT_EQ(str, "a b c");
}
TEST(util_string_replace, long_haystack)
{
string str = "a x b xxc";
string_replace(str, "x", "FOO");
- EXPECT_EQ("a FOO b FOOFOOc", str);
+ EXPECT_EQ(str, "a FOO b FOOFOOc");
}
/* ******** Tests for string_endswith() ******** */
@@ -192,25 +192,25 @@ TEST(util_string_endswith, simple_false)
TEST(util_string_strip, empty)
{
string str = string_strip("");
- EXPECT_EQ("", str);
+ EXPECT_EQ(str, "");
}
TEST(util_string_strip, only_spaces)
{
string str = string_strip(" ");
- EXPECT_EQ("", str);
+ EXPECT_EQ(str, "");
}
TEST(util_string_strip, no_spaces)
{
string str = string_strip("foo bar");
- EXPECT_EQ("foo bar", str);
+ EXPECT_EQ(str, "foo bar");
}
TEST(util_string_strip, with_spaces)
{
string str = string_strip(" foo bar ");
- EXPECT_EQ("foo bar", str);
+ EXPECT_EQ(str, "foo bar");
}
/* ******** Tests for string_remove_trademark() ******** */
@@ -218,31 +218,31 @@ TEST(util_string_strip, with_spaces)
TEST(util_string_remove_trademark, empty)
{
string str = string_remove_trademark("");
- EXPECT_EQ("", str);
+ EXPECT_EQ(str, "");
}
TEST(util_string_remove_trademark, no_trademark)
{
string str = string_remove_trademark("foo bar");
- EXPECT_EQ("foo bar", str);
+ EXPECT_EQ(str, "foo bar");
}
TEST(util_string_remove_trademark, only_tm)
{
string str = string_remove_trademark("foo bar(TM) zzz");
- EXPECT_EQ("foo bar zzz", str);
+ EXPECT_EQ(str, "foo bar zzz");
}
TEST(util_string_remove_trademark, only_r)
{
string str = string_remove_trademark("foo bar(R) zzz");
- EXPECT_EQ("foo bar zzz", str);
+ EXPECT_EQ(str, "foo bar zzz");
}
TEST(util_string_remove_trademark, both)
{
string str = string_remove_trademark("foo bar(TM)(R) zzz");
- EXPECT_EQ("foo bar zzz", str);
+ EXPECT_EQ(str, "foo bar zzz");
}
CCL_NAMESPACE_END
diff --git a/intern/utfconv/utfconv.h b/intern/utfconv/utfconv.h
index f00f4aeef27..d05ed61c8d8 100644
--- a/intern/utfconv/utfconv.h
+++ b/intern/utfconv/utfconv.h
@@ -93,7 +93,7 @@ wchar_t *alloc_utf16_from_8(const char *in8, size_t add);
/* Easy allocation and conversion of new utf-16 string. New string has _16 suffix. Must be deallocated with UTF16_UN_ENCODE in right order*/
#define UTF16_ENCODE(in8str) if (1) { \
- wchar_t *in8str ## _16 = alloc_utf16_from_8((char *)in8str, 0)
+ wchar_t *in8str ## _16 = alloc_utf16_from_8((const char *)in8str, 0)
#define UTF16_UN_ENCODE(in8str) \
free(in8str ## _16); } (void)0