From 247070cd8260d174162bb0cf21ead7d69af77f53 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Wed, 30 Aug 2017 14:57:13 +0200 Subject: [PATCH] Fixed a regression bug of Slic3r::encode() / decode() --- xs/CMakeLists.txt | 9 +++++---- xs/xsp/Config.xsp | 2 +- xs/xsp/XS.xsp | 9 ++++++--- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/xs/CMakeLists.txt b/xs/CMakeLists.txt index fd23d2fb7..9d7c31100 100644 --- a/xs/CMakeLists.txt +++ b/xs/CMakeLists.txt @@ -392,10 +392,11 @@ find_package(PerlEmbed REQUIRED) target_include_directories(XS PRIVATE ${PERL_INCLUDE_PATH}) target_compile_options(XS PRIVATE ${PerlEmbed_CCFLAGS}) # If the Perl is compiled with optimization off, disable optimization over the whole project. -#if ("-Od" IN_LIST PerlEmbed_CCFLAGS OR "/Od" IN_LIST PerlEmbed_CCFLAGS) -# set(CMAKE_CXX_FLAGS_RELEASE /Od) -# set(CMAKE_C_FLAGS_RELEASE /Od) -#endif() +if (WIN32 AND ";${PerlEmbed_CCFLAGS};" MATCHES ";[-/]Od;") + message(STATUS "Perl compiled without optimization. Disabling optimization for the Slic3r build.") + set(CMAKE_CXX_FLAGS_RELEASE /Od /Zi) + set(CMAKE_C_FLAGS_RELEASE /Od /Zi) +endif() # The following line will add -fPIC on Linux to make the XS.so rellocable. add_definitions(${PerlEmbed_CCCDLFLAGS}) if (WIN32) diff --git a/xs/xsp/Config.xsp b/xs/xsp/Config.xsp index ea84d77c5..368746de4 100644 --- a/xs/xsp/Config.xsp +++ b/xs/xsp/Config.xsp @@ -44,7 +44,7 @@ try { THIS->load_from_gcode(input_file); } catch (std::exception& e) { - croak("Error exracting configuration from a g-code %s:\n%s\n", input_file.c_str(), e.what()); + croak("Error extracting configuration from a g-code %s:\n%s\n", input_file.c_str(), e.what()); } %}; %name{_save} void save(std::string file); diff --git a/xs/xsp/XS.xsp b/xs/xsp/XS.xsp index 6ba6817c1..5fa3a4b7d 100644 --- a/xs/xsp/XS.xsp +++ b/xs/xsp/XS.xsp @@ -52,19 +52,22 @@ std::string encode_path(src) const char *src; CODE: - Slic3r::encode_path(src); + RETVAL = Slic3r::encode_path(src); + OUTPUT: RETVAL std::string decode_path(src) const char *src; CODE: - Slic3r::decode_path(src); + RETVAL = Slic3r::decode_path(src); + OUTPUT: RETVAL std::string normalize_utf8_nfc(src) const char *src; CODE: - Slic3r::normalize_utf8_nfc(src); + RETVAL = Slic3r::normalize_utf8_nfc(src); + OUTPUT: RETVAL void xspp_test_croak_hangs_on_strawberry()