Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37405182
en ru br
Репозитории ALT
S:2.42.2-alt1
5.1: 2.26.0-alt1
4.1: 2.20.0-alt1
4.0: 2.18.0-alt1
www.altlinux.org/Changes

Группа :: Система/Библиотеки
Пакет: libxml++2

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: libxml++-0f5aa54.patch
Скачать


commit 0f5aa541287723d8fd4b67c72a894e790203f498
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Tue Jun 20 21:46:12 2017 +0200
    Parser: Replace (deprecated) Glib::Threads::Mutex with std::mutex.
diff --git a/libxml++/parsers/parser.cc b/libxml++/parsers/parser.cc
index b96fe90..6bd4c45 100644
--- a/libxml++/parsers/parser.cc
+++ b/libxml++/parsers/parser.cc
@@ -4,15 +4,12 @@
  * included with libxml++ as the file COPYING.
  */
 
-// Include glibmm/threads.h first. It must be the first file to include glib.h,
-// because it temporarily undefines G_DISABLE_DEPRECATED while it includes glib.h.
-#include <glibmm/threads.h> // For Glib::Threads::Mutex. Needed until the next API/ABI break.
-
 #include "libxml++/exceptions/wrapped_exception.h"
 #include "libxml++/parsers/parser.h"
 
 #include <libxml/parser.h>
 
+#include <mutex>
 #include <memory> //For unique_ptr.
 #include <map>
 
@@ -42,18 +39,18 @@ struct ExtraParserData
 std::map<const xmlpp::Parser*, ExtraParserData> extra_parser_data;
 // Different Parser instances may run in different threads.
 // Accesses to extra_parser_data must be thread-safe.
-Glib::Threads::Mutex extra_parser_data_mutex;
+std::mutex extra_parser_data_mutex;
 
 void on_parser_error(const xmlpp::Parser* parser, const Glib::ustring& message)
 {
-  Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+  std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
   //Throw an exception later when the whole message has been received:
   extra_parser_data[parser].parser_error_ += message;
 }
 
 void on_parser_warning(const xmlpp::Parser* parser, const Glib::ustring& message)
 {
-  Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+  std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
   //Throw an exception later when the whole message has been received:
   extra_parser_data[parser].parser_warning_ += message;
 }
@@ -71,7 +68,7 @@ Parser::~Parser()
 {
   release_underlying();
   delete exception_;
-  Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+  std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
   extra_parser_data.erase(this);
 }
 
@@ -97,46 +94,46 @@ bool Parser::get_substitute_entities() const
 
 void Parser::set_throw_messages(bool val)
 {
-  Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+  std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
   extra_parser_data[this].throw_parser_messages_ = val;
   extra_parser_data[this].throw_validity_messages_ = val;
 }
 
 bool Parser::get_throw_messages() const
 {
-  Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+  std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
   return extra_parser_data[this].throw_parser_messages_;
 }
 
 void Parser::set_include_default_attributes(bool val)
 {
-  Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+  std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
   extra_parser_data[this].include_default_attributes_ = val;
 }
 
 bool Parser::get_include_default_attributes()
 {
-  Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+  std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
   return extra_parser_data[this].include_default_attributes_;
 }
 
 void Parser::set_parser_options(int set_options, int clear_options)
 {
-  Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+  std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
   extra_parser_data[this].set_options_ = set_options;
   extra_parser_data[this].clear_options_ = clear_options;
 }
 
 void Parser::get_parser_options(int& set_options, int& clear_options)
 {
-  Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+  std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
   set_options = extra_parser_data[this].set_options_;
   clear_options = extra_parser_data[this].clear_options_;
 }
 
 void Parser::initialize_context()
 {
-  Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+  std::unique_lock<std::mutex> lock(extra_parser_data_mutex);
 
   //Clear these temporary buffers:
   extra_parser_data[this].parser_error_.erase();
@@ -232,7 +229,7 @@ void Parser::check_for_validity_messages() // Also checks parser messages
   bool parser_msg = false;
   bool validity_msg = false;
 
-  Glib::Threads::Mutex::Lock lock(extra_parser_data_mutex);
+  std::lock_guard<std::mutex> lock(extra_parser_data_mutex);
   if (!extra_parser_data[this].parser_error_.empty())
   {
     parser_msg = true;
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin