Update UserObjectTransfer to MooseCoordTransform

--- framework/src/transfers/MultiAppUserObjectTransfer.C
+++ framework/src/transfers/MultiAppUserObjectTransfer.C
@@ -8,6 +8,7 @@
 //* https://www.gnu.org/licenses/lgpl-2.1.html

 #include "MultiAppUserObjectTransfer.h"
+#include "MooseCoordTransform.h"

 #include <limits>

@@ -112,6 +113,8 @@
   TIME_SECTION(
       "MultiAppUserObjectTransfer::execute()", 5, "Performing transfer with a user object");

+  getAppInfo();
+
   switch (_current_direction)
   {
     case TO_MULTIAPP:
@@ -163,6 +166,7 @@

           const UserObject & user_object =
               getToMultiApp()->problemBase().getUserObjectBase(_user_object_name);
+          const auto & from_transform = getToMultiApp()->problemBase().coordTransform();

           if (is_nodal)
           {
@@ -180,7 +184,8 @@
                 dof_id_type dof = node->dof_number(sys_num, var_num, 0);

                 swapper.forceSwap();
-                Real from_value = user_object.spatialValue(*node + getToMultiApp()->position(i));
+                Real from_value = user_object.spatialValue(from_transform.mapBack(
+                    getToMultiApp()->appProblemBase(i).coordTransform()(*node)));
                 swapper.forceSwap();

                 solution.set(dof, from_value);
@@ -229,7 +234,8 @@
                 dof_id_type dof = elem->dof_number(sys_num, var_num, offset++);

                 swapper.forceSwap();
-                Real from_value = user_object.spatialValue(point + getToMultiApp()->position(i));
+                Real from_value = user_object.spatialValue(from_transform.mapBack(
+                    getToMultiApp()->appProblemBase(i).coordTransform()(point)));
                 swapper.forceSwap();

                 solution.set(dof, from_value);
@@ -247,6 +253,7 @@
     case FROM_MULTIAPP:
     {
       FEProblemBase & to_problem = getFromMultiApp()->problemBase();
+      const auto & to_transform = to_problem.coordTransform();
       MooseVariableFEBase & to_var = to_problem.getVariable(
           0, _to_var_name, Moose::VarKindType::VAR_ANY, Moose::VarFieldType::VAR_FIELD_STANDARD);
       SystemBase & to_system_base = to_var.sys();
@@ -260,7 +267,6 @@
                   "MultiAppUserObjectTransfer only works with ReplicatedMesh!");

       unsigned int to_var_num = to_sys.variable_number(to_var.name());
-

       // EquationSystems & to_es = to_sys.get_equation_systems();

@@ -429,7 +435,7 @@
             if (sub_app == static_cast<unsigned int>(-1))
               continue;

-            const auto & app_position = _multi_app->position(sub_app);
+            const auto & from_transform = _multi_app->appProblemBase(sub_app).coordTransform();
             const auto & user_object = _multi_app->appUserObjectBase(sub_app, _user_object_name);

             dof_id_type dof = node->dof_number(to_sys_num, to_var_num, 0);
@@ -437,7 +443,7 @@
             Real from_value = 0;
             {
               Moose::ScopedCommSwapper swapper(getFromMultiApp()->comm());
-              from_value = user_object.spatialValue(*node - app_position);
+              from_value = user_object.spatialValue(from_transform.mapBack(to_transform(*node)));
             }

             if (from_value == std::numeric_limits<Real>::infinity())
@@ -496,7 +502,8 @@
             if (sub_app == static_cast<unsigned int>(-1))
               continue;

-            const auto & app_position = getFromMultiApp()->position(sub_app);
+            const auto & from_transform =
+                getFromMultiApp()->appProblemBase(sub_app).coordTransform();
             const auto & user_object =
                 getFromMultiApp()->appUserObjectBase(sub_app, _user_object_name);

@@ -505,7 +512,7 @@
             Real from_value = 0;
             {
               Moose::ScopedCommSwapper swapper(getFromMultiApp()->comm());
-              from_value = user_object.spatialValue(point - app_position);
+              from_value = user_object.spatialValue(from_transform.mapBack(to_transform(point)));
             }

             if (from_value == std::numeric_limits<Real>::infinity())


add missing+cleanup includes. Fixes #460, thanks Hello71

PiperOrigin-RevId: 412901594

--- hwy/targets.cc
+++ hwy/targets.cc
@@ -15,23 +15,28 @@
 #include "hwy/targets.h"

 #include <stdarg.h>
+#include <stddef.h>
 #include <stdint.h>
 #include <stdio.h>

 #include <atomic>
-#include <cstddef>
-#include <limits>
+
+#include "hwy/base.h"

 #if defined(ADDRESS_SANITIZER) || defined(MEMORY_SANITIZER) || \
     defined(THREAD_SANITIZER)
 #include "sanitizer/common_interface_defs.h"  // __sanitizer_print_stack_trace
 #endif                                        // defined(*_SANITIZER)

+#if HWY_COMPILER_MSVC || HWY_ARCH_RVV
+#include <stdlib.h>  // abort / exit
+#endif
+
 #if HWY_ARCH_X86
 #include <xmmintrin.h>
 #if HWY_COMPILER_MSVC
 #include <intrin.h>
-#else  // HWY_COMPILER_MSVC
+#else  // !HWY_COMPILER_MSVC
 #include <cpuid.h>
 #endif  // HWY_COMPILER_MSVC
 #endif  // HWY_ARCH_X86
@@ -93,7 +98,7 @@
 uint32_t supported_targets_for_test_ = 0;

 // Mask of targets disabled at runtime with DisableTargets.
-uint32_t supported_mask_{std::numeric_limits<uint32_t>::max()};
+uint32_t supported_mask_{LimitsMax<uint32_t>()};

 #if HWY_ARCH_X86
 // Arbritrary bit indices indicating which instruction set extensions are


Check if the meta object is created

Check if the meta object is created

--- src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp
+++ src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp
@@ -185,6 +185,8 @@
                 }
             }
         }
+    } else {
+        qWarning() << "dynamic properties are not supported for components";
     }

     m_signalSpy.setObjectNodeInstance(objectNodeInstance);
@@ -780,6 +782,12 @@

 void ObjectNodeInstance::createDynamicProperty(const QString &name, const QString &/*typeName*/)
 {
+    if (m_metaObject == 0) {
+        qWarning() << "dynamic properties are not supported for components";
+        return;
+    }
+
+
     if (metaObjectHasNotPropertyName(m_metaObject, name))
         m_metaObject->createNewProperty(name);
 }


Extend note about validity of default

Extend note about validity of default

Task-number: QTCREATORBUG-6711

Change-Id: I56b53b7d2259c55f209330c708df6b2b551cd3d9
Reviewed-by: Oswald Buddenhagen <6a8868beda3e139b5ac22b2534a23d3e6ba81819@nokia.com>

--- src/plugins/projectexplorer/baseprojectwizarddialog.cpp
+++ src/plugins/projectexplorer/baseprojectwizarddialog.cpp
@@ -151,7 +151,8 @@
 {
     const QDir pathDir(path);
     //: File path suggestion for a new project. If you choose
-    //: to translate it, make sure it is a valid path name without blanks.
+    //: to translate it, make sure it is a valid path name without blanks
+    //: and using only ascii chars.
     const QString prefix = tr("untitled");
     for (unsigned i = 0; ; ++i) {
         QString name = prefix;


Fix git_strarray when an actual array is passed in

--- generate/templates/manual/src/str_array_converter.cc
+++ generate/templates/manual/src/str_array_converter.cc
@@ -30,7 +30,7 @@
   git_strarray *result;

   for(int i = 0; i < count; i++) {
-    NanUtf8String entry(val->CloneElementAt(i));
+    NanUtf8String entry(val->Get(i));
     strings[i] = *entry;
   }


Added wrappers so that this works as libheapq or libp3heapq

--- direct/src/heapq/heapq.cxx
+++ direct/src/heapq/heapq.cxx
@@ -21,8 +21,10 @@

 #ifdef _WIN32
 extern "C" __declspec(dllexport) void initlibheapq(void);
+extern "C" __declspec(dllexport) void initlibp3heapq(void);
 #else
 extern "C" void initlibheapq();
+extern "C" void initlibp3heapq();
 #endif

 static PyObject *
@@ -232,4 +234,7 @@
     (void) Py_InitModule("libheapq", heapqcMethods);
 };

-
+void initlibp3heapq(void) {
+    (void) Py_InitModule("libp3heapq", heapqcMethods);
+};
+


[FIX] bam_stats now correctly imports both gold-standard and original fasta files

git-svn-id: a7f2a8f7432d210e972fb03898013d213e2b549b@12161 e6417c60-b987-48fd-844e-b20f0fcc1017

--- seqan/extras/demos/bam_stats.cpp
+++ seqan/extras/demos/bam_stats.cpp
@@ -244,7 +244,7 @@
     unsigned char indels;

     Read() :
-        contigId(0),
+        contigId(-1),
         beginPos(0),
         reverseComplemented(false),
         errors(0),
@@ -508,11 +508,7 @@

                 // Read reverse complemented tag.
                 if (hasFlagRC(record)) read.reverseComplemented = true;
-
-                // Read read sequence.
-                appendValue(readSeqs, record.seq);
-                if (hasFlagRC(record)) reverseComplement(back(readSeqs));
-
+
                 // Read read name.
                 CharString readName = record.qName;
                 if (hasFlagMultiple(record))
@@ -523,7 +519,15 @@
                     else if (hasFlagLast(record))
                         append(readName, "/2");
                 }
-                appendName(readNames, readName, readNameCache);
+                int readId = -1;
+                if (!getIdByName(readNames, readName, readId, readNameCache))
+                {
+                    // Append read sequence and name.
+                    readId = length(readNames);
+                    appendName(readNames, readName, readNameCache);
+                    appendValue(readSeqs, record.seq);
+                    if (hasFlagRC(record)) reverseComplement(back(readSeqs));
+                }

                 // Read total errors from NM tag.
                 idx = 0;
@@ -561,8 +565,14 @@
 //                if (read.indels + read.SNPs + read.seqErrors != read.errors)
 //                    std::cerr << "WARNING: Inconsistencies in error tags " << record.qName << std::endl;

-                // Add read to gold standard.
-                appendValue(goldStandard, read);
+                // Add read to gold standard.
+                if (readId >= (int)length(goldStandard))
+                {
+                    resize(goldStandard, readId + 1);
+                    if (!empty(options.inFastqFile))
+                        std::cerr << "WARNING: A read in the gold standard is not in the fasta file: " << record.qName << std::endl;
+                }
+                goldStandard[readId] = read;
             }

             line += 1;
@@ -676,7 +686,7 @@
             BamAlignmentRecord & record = chunk[i];

             // retrieve (possibly) missing read sequence
-            __uint32 readId = 0;
+            int readId = -1;
             CharString readName = record.qName;
             if (hasFlagMultiple(record))
             {
@@ -696,18 +706,21 @@
                 // This should never happen with a gold standard.
                 if (options.goldStandard)
                 {
-                    std::cerr << "WARNING: A read unknown to the gold standard has been found: " << record.qName << std::endl;
+                    std::cerr << "WARNING: A read unknown to the gold standard/fasta file has been found: " << record.qName << std::endl;
                     return 1;
                 }

-                // Add read name and entry.
-                readId = length(readNames);
-                appendValue(readSeqs, record.seq);
-                if (hasFlagRC(record))
-                    reverseComplement(back(readSeqs));
-                appendName(readNames, record.qName, readNameCache);
-                appendValue(minErrors, maxValue<unsigned>());
-                appendValue(matchesCount, 0);
+                if (readId == -1)
+                {
+                    // Add read name and entry.
+                    readId = length(readNames);
+                    appendValue(readSeqs, record.seq);
+                    if (hasFlagRC(record))
+                        reverseComplement(back(readSeqs));
+                    appendName(readNames, record.qName, readNameCache);
+                    appendValue(minErrors, maxValue<unsigned>());
+                    appendValue(matchesCount, 0);
+                }
             }
             record._qId = readId;
         }


fixed tparams dialog to allow disabling skydome

--- TerrainApps/Enviro/wx/TParamsDlg.cpp
+++ TerrainApps/Enviro/wx/TParamsDlg.cpp
@@ -231,6 +231,7 @@
 //  Params.m_fVehicleSpeed = m_fVehicleSpeed;
 //  Params.m_iNumCars = m_iNumCars;

+	Params.m_bSky = m_bSky;
 	Params.m_strSkyTexture = m_strSkyTexture;
 	Params.m_bOceanPlane = m_bOceanPlane;
 	Params.m_bHorizon = m_bHorizon;


changed check for "untitled." to "untitled"

--- TerrainApps/VTBuilder/FrameMenus.cpp
+++ TerrainApps/VTBuilder/FrameMenus.cpp
@@ -930,7 +930,7 @@
 void MainFrame::OnLayerSave(wxCommandEvent &event)
 {
 	vtLayer *lp = GetActiveLayer();
-	if (lp->GetLayerFilename().Left(9).CmpNoCase(_T("untitled.")) == 0)
+	if (lp->GetLayerFilename().Left(8).CmpNoCase(_T("untitled")) == 0)
 	{
 		if (!lp->AskForSaveFilename())
 			return;


Reformat code

Reformat code

--- SettingsUI/HotkeyPrompt.cpp
+++ SettingsUI/HotkeyPrompt.cpp
@@ -1,24 +1,19 @@
-// HotkeyPrompt.cpp : implementation file
-//
-
 #include "stdafx.h"
 #include "SettingsUI.h"
 #include "HotkeyPrompt.h"
 #include "afxdialogex.h"

-
-// HotkeyPrompt dialog
+#include "KeyGrabber.h"

 IMPLEMENT_DYNAMIC(HotkeyPrompt, CDialog)

-HotkeyPrompt::HotkeyPrompt(CWnd* pParent /*=NULL*/)
-	: CDialog(HotkeyPrompt::IDD, pParent)
-{
+HotkeyPrompt::HotkeyPrompt(CWnd* pParent /*=NULL*/) :
+CDialog(HotkeyPrompt::IDD, pParent) {

 }

-HotkeyPrompt::~HotkeyPrompt()
-{
+HotkeyPrompt::~HotkeyPrompt() {
+
 }

 BOOL HotkeyPrompt::OnInitDialog() {
@@ -27,9 +22,12 @@
     return TRUE;
 }

+void HotkeyPrompt::DoDataExchange(CDataExchange* pDX) {
+    CDialog::DoDataExchange(pDX);
+    DDX_Control(pDX, LBL_KEYS, _keys);
+    DDX_Control(pDX, BTN_SAVE, _save);
+}

 BEGIN_MESSAGE_MAP(HotkeyPrompt, CDialog)
 END_MESSAGE_MAP()

-
-// HotkeyPrompt message handlers


BUG: fix test for adding a face with opposite orientation

--- Testing/Code/Review/AddFaceTest2.cxx
+++ Testing/Code/Review/AddFaceTest2.cxx
@@ -23,7 +23,7 @@
     0, 4, 6, };

   // Configuration of odd_connectivity mesh:
-  // numVertices=7 , numEdges=9, numFaces=3, numBoundary=1, Chi=1
+  // numVertices=7, numEdges=9, numFaces=3, numBoundaries=1, Chi=2
   //
   //    5 ---------- 4 ---------- 0 ---------- 1
   //    |  [2]   __/ |   [3]  __/   \__  [1]   |
@@ -69,13 +69,13 @@
     mesh->SetCell( i, cellpointer );
     }

-  int computedNumCells = mesh->GetNumberOfCells();
-  std::cout << "computedNumCells= " << computedNumCells << std::endl;
+  int computedNumFaces = mesh->ComputeNumberOfFaces();
+  std::cout << "computedNumFaces= " << computedNumFaces << std::endl;

   std::cout << "Test whether the fourth face was rejected" << std::endl;

   if( itkQE::AssertTopologicalInvariants< MeshType >
-      ( mesh, 7, 9, 3, 1, 1 ) )
+      ( mesh, 7, 9, 3, 3, -1 ) )
     {
     std::cout << "Passed" << std::endl;
     }


Disable GATT checking for updates. It's broken and does bad things.

--- adafruitBLE.cpp
+++ adafruitBLE.cpp
@@ -762,6 +762,7 @@

 void ADAFRUITBLE::checkGattChar(uint8_t charact)
 {
+    /*
     uint16_t len;
     uint8_t buff[40];

@@ -772,7 +773,7 @@
     len = ble.readraw(); // readraw swallow OK/ERROR already
     memcpy(buff, ble.buffer, len);
     gattRX(charact, buff, len);
-
+    */
 }

 /*


* Don't process input when window loses focus * Some refactoring

--- imgui-SFML.cpp
+++ imgui-SFML.cpp
@@ -16,6 +16,7 @@
 static sf::Window* s_window = nullptr;
 static sf::RenderTarget* s_renderTarget = nullptr;
 static sf::Texture* s_fontTexture = nullptr;
+static bool s_windowHasFocus = true;

 static sf::Clock s_deltaClock;
 static bool s_mousePressed[5] = { false, false, false, false, false };
@@ -101,26 +102,38 @@
 void ProcessEvent(const sf::Event& event)
 {
     ImGuiIO& io = ImGui::GetIO();
-    switch (event.type)
+    if (s_windowHasFocus) {
+        switch (event.type)
+        {
+            case sf::Event::MouseButtonPressed: // fall-through
+            case sf::Event::MouseButtonReleased:
+                s_mousePressed[event.mouseButton.button] = (event.type == sf::Event::MouseButtonPressed);
+                break;
+            case sf::Event::MouseWheelMoved:
+                io.MouseWheel += static_cast<float>(event.mouseWheel.delta);
+                break;
+            case sf::Event::KeyPressed: // fall-through
+            case sf::Event::KeyReleased:
+                io.KeysDown[event.key.code] = (event.type == sf::Event::KeyPressed);
+                io.KeyCtrl = event.key.control;
+                io.KeyShift = event.key.shift;
+                io.KeyAlt = event.key.alt;
+                break;
+            case sf::Event::TextEntered:
+                if (event.text.unicode > 0 && event.text.unicode < 0x10000) {
+                    io.AddInputCharacter(event.text.unicode);
+                }
+                break;
+        }
+    }
+
+    switch (event.type)
     {
-        case sf::Event::MouseButtonPressed: // fall-through
-        case sf::Event::MouseButtonReleased:
-            s_mousePressed[event.mouseButton.button] = (event.type == sf::Event::MouseButtonPressed);
+        case sf::Event::LostFocus:
+            s_windowHasFocus = false;
             break;
-        case sf::Event::MouseWheelMoved:
-            io.MouseWheel += (float)event.mouseWheel.delta;
-            break;
-        case sf::Event::KeyPressed: // fall-through
-        case sf::Event::KeyReleased:
-            io.KeysDown[event.key.code] = (event.type == sf::Event::KeyPressed);
-            io.KeyCtrl = event.key.control;
-            io.KeyShift = event.key.shift;
-            io.KeyAlt = event.key.alt;
-            break;
-        case sf::Event::TextEntered:
-            if (event.text.unicode > 0 && event.text.unicode < 0x10000) {
-                io.AddInputCharacter(event.text.unicode);
-            }
+        case sf::Event::GainedFocus:
+            s_windowHasFocus = true;
             break;
         default:
             break;
@@ -136,12 +149,13 @@

     // update mouse
     assert(s_window);
-    sf::Vector2f mousePos = static_cast<sf::Vector2f>(sf::Mouse::getPosition(*s_window));
-    io.MousePos = ImVec2(mousePos.x, mousePos.y);
-    io.MouseDown[0] = s_mousePressed[0] || sf::Mouse::isButtonPressed(sf::Mouse::Left);
-    io.MouseDown[1] = s_mousePressed[1] || sf::Mouse::isButtonPressed(sf::Mouse::Right);
-    io.MouseDown[2] = s_mousePressed[2] || sf::Mouse::isButtonPressed(sf::Mouse::Middle);
-    s_mousePressed[0] = s_mousePressed[1] = s_mousePressed[2] = false;
+    if (s_windowHasFocus) {
+        io.MousePos = sf::Mouse::getPosition(*s_window);
+        io.MouseDown[0] = s_mousePressed[0] || sf::Mouse::isButtonPressed(sf::Mouse::Left);
+        io.MouseDown[1] = s_mousePressed[1] || sf::Mouse::isButtonPressed(sf::Mouse::Right);
+        io.MouseDown[2] = s_mousePressed[2] || sf::Mouse::isButtonPressed(sf::Mouse::Middle);
+        s_mousePressed[0] = s_mousePressed[1] = s_mousePressed[2] = false;
+    }

     ImGui::NewFrame();
 }
@@ -242,8 +256,8 @@

     // scale stuff (needed for proper handling of window resize)
     ImGuiIO& io = ImGui::GetIO();
-    int fb_width = (int)(io.DisplaySize.x * io.DisplayFramebufferScale.x);
-    int fb_height = (int)(io.DisplaySize.y * io.DisplayFramebufferScale.y);
+    int fb_width = static_cast<int>(io.DisplaySize.x * io.DisplayFramebufferScale.x);
+    int fb_height = static_cast<int>(io.DisplaySize.y * io.DisplayFramebufferScale.y);
     if (fb_width == 0 || fb_height == 0) { return; }
     draw_data->ScaleClipRects(io.DisplayFramebufferScale);

@@ -325,8 +339,7 @@
     ImVec2 uv1((textureRect.left + textureRect.width)  / textureSize.x,
                (textureRect.top  + textureRect.height) / textureSize.y);

-    return ImGui::ImageButton((void*)&texture, size, uv0, uv1, framePadding, ImVec4(bgColor.r, bgColor.g, bgColor.b, bgColor.a),
-                       ImVec4(tintColor.r, tintColor.g, tintColor.b, tintColor.a));
+    return ImGui::ImageButton((void*)&texture, size, uv0, uv1, framePadding, bgColor, tintColor);
 }

 } // end of anonymous namespace


Demo: Console: More friendly to text color changes.

--- imgui_demo.cpp
+++ imgui_demo.cpp
@@ -2616,12 +2616,13 @@
         ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(4,1)); // Tighten spacing
         if (copy_to_clipboard)
             ImGui::LogToClipboard();
+        ImVec4 col_default_text = ImGui::GetStyleColorVec4(ImGuiCol_Text);
         for (int i = 0; i < Items.Size; i++)
         {
             const char* item = Items[i];
             if (!filter.PassFilter(item))
                 continue;
-            ImVec4 col = ImVec4(1.0f,1.0f,1.0f,1.0f); // A better implementation may store a type per-item. For the sample let's just parse the text.
+            ImVec4 col = col_default_text;
             if (strstr(item, "[error]")) col = ImColor(1.0f,0.4f,0.4f,1.0f);
             else if (strncmp(item, "# ", 2) == 0) col = ImColor(1.0f,0.78f,0.58f,1.0f);
             ImGui::PushStyleColor(ImGuiCol_Text, col);


iox-#415 Address review findings from #860 renaming test cases and member variable

Signed-off-by: Simon Hoinkis <f0773326fce8fa552c28fe58d0e558a9f1b7687f@apex.ai>

--- iceoryx_posh/test/moduletests/test_roudi_service_registry.cpp
+++ iceoryx_posh/test/moduletests/test_roudi_service_registry.cpp
@@ -42,14 +42,14 @@
             std::cout << output << std::endl;
         }
     }
-    iox::roudi::ServiceRegistry registry;
+    iox::roudi::ServiceRegistry sut;

     iox::roudi::ServiceRegistry::ServiceDescriptionVector_t searchResults;
 };

 TEST_F(ServiceRegistry_test, AddNoServiceDescriptionsAndWildcardSearchReturnsNothing)
 {
-    registry.find(searchResults, Wildcard, Wildcard);
+    sut.find(searchResults, Wildcard, Wildcard);

     EXPECT_THAT(searchResults.size(), Eq(0));
 }
@@ -66,7 +66,7 @@

     for (auto& service : services)
     {
-        auto result = registry.add(service);
+        auto result = sut.add(service);
         ASSERT_FALSE(result.has_error());
     }
 }
@@ -83,24 +83,24 @@

     for (auto& service : services)
     {
-        auto result = registry.add(service);
+        auto result = sut.add(service);
         ASSERT_FALSE(result.has_error());
     }

-    auto result = registry.add(iox::capro::ServiceDescription("Foo", "Bar", "Baz"));
+    auto result = sut.add(iox::capro::ServiceDescription("Foo", "Bar", "Baz"));
     ASSERT_TRUE(result.has_error());
     EXPECT_THAT(result.get_error(), Eq(ServiceRegistry::Error::SERVICE_REGISTRY_FULL));
 }

 TEST_F(ServiceRegistry_test, AddServiceDescriptionsWhichWasAlreadyAddedAndReturnsOneResult)
 {
-    auto result1 = registry.add(ServiceDescription("Li", "La", "Launebaer"));
+    auto result1 = sut.add(ServiceDescription("Li", "La", "Launebaer"));
     ASSERT_FALSE(result1.has_error());

-    auto result2 = registry.add(ServiceDescription("Li", "La", "Launebaer"));
+    auto result2 = sut.add(ServiceDescription("Li", "La", "Launebaer"));
     ASSERT_FALSE(result2.has_error());

-    registry.find(searchResults, Wildcard, Wildcard);
+    sut.find(searchResults, Wildcard, Wildcard);

     EXPECT_THAT(searchResults.size(), Eq(1));
     EXPECT_THAT(searchResults[0].serviceDescription, Eq(ServiceDescription("Li", "La", "Launebaer")));
@@ -109,15 +109,15 @@

 TEST_F(ServiceRegistry_test, AddServiceDescriptionsTwiceAndRemoveOnceAndReturnsOneResult)
 {
-    auto result1 = registry.add(ServiceDescription("Li", "La", "Launebaerli"));
+    auto result1 = sut.add(ServiceDescription("Li", "La", "Launebaerli"));
     ASSERT_FALSE(result1.has_error());

-    auto result2 = registry.add(ServiceDescription("Li", "La", "Launebaerli"));
+    auto result2 = sut.add(ServiceDescription("Li", "La", "Launebaerli"));
     ASSERT_FALSE(result2.has_error());

-    registry.remove(ServiceDescription("Li", "La", "Launebaerli"));
-
-    registry.find(searchResults, Wildcard, Wildcard);
+    sut.remove(ServiceDescription("Li", "La", "Launebaerli"));
+
+    sut.find(searchResults, Wildcard, Wildcard);

     EXPECT_THAT(searchResults.size(), Eq(1));
     EXPECT_THAT(searchResults[0].serviceDescription, Eq(ServiceDescription("Li", "La", "Launebaerli")));
@@ -126,25 +126,25 @@

 TEST_F(ServiceRegistry_test, AddInvalidServiceDescriptionsWorks)
 {
-    auto result = registry.add(ServiceDescription());
+    auto result = sut.add(ServiceDescription());
     ASSERT_FALSE(result.has_error());
 }

 TEST_F(ServiceRegistry_test, RemovingServiceDescriptionsWhichWasntAddedFails)
 {
-    EXPECT_FALSE(registry.remove(ServiceDescription("Sim", "Sa", "Lambim")));
+    EXPECT_FALSE(sut.remove(ServiceDescription("Sim", "Sa", "Lambim")));
 }

 TEST_F(ServiceRegistry_test, RemovingInvalidServiceDescriptionsWorks)
 {
-    ASSERT_FALSE(registry.add(ServiceDescription()).has_error());
-    EXPECT_TRUE(registry.remove(ServiceDescription()));
+    ASSERT_FALSE(sut.add(ServiceDescription()).has_error());
+    EXPECT_TRUE(sut.remove(ServiceDescription()));
 }

 TEST_F(ServiceRegistry_test, SingleInvalidServiceDescriptionsCanBeFoundWithWildcardSearch)
 {
-    ASSERT_FALSE(registry.add(ServiceDescription()).has_error());
-    registry.find(searchResults, Wildcard, Wildcard);
+    ASSERT_FALSE(sut.add(ServiceDescription()).has_error());
+    sut.find(searchResults, Wildcard, Wildcard);

     EXPECT_THAT(searchResults.size(), Eq(1));
     EXPECT_THAT(searchResults[0].serviceDescription, Eq(ServiceDescription()));
@@ -152,8 +152,8 @@

 TEST_F(ServiceRegistry_test, SingleInvalidServiceDescriptionsCanBeFoundWithEmptyString)
 {
-    ASSERT_FALSE(registry.add(ServiceDescription()).has_error());
-    registry.find(searchResults, "", "");
+    ASSERT_FALSE(sut.add(ServiceDescription()).has_error());
+    sut.find(searchResults, "", "");

     EXPECT_THAT(searchResults.size(), Eq(1));
     EXPECT_THAT(searchResults[0].serviceDescription, Eq(ServiceDescription()));
@@ -161,9 +161,9 @@

 TEST_F(ServiceRegistry_test, SingleServiceDescriptionCanBeFoundWithWildcardSearch)
 {
-    auto result = registry.add(ServiceDescription("Foo", "Bar", "Baz"));
+    auto result = sut.add(ServiceDescription("Foo", "Bar", "Baz"));
     ASSERT_FALSE(result.has_error());
-    registry.find(searchResults, Wildcard, Wildcard);
+    sut.find(searchResults, Wildcard, Wildcard);

     EXPECT_THAT(searchResults.size(), Eq(1));
     EXPECT_THAT(searchResults[0].serviceDescription, Eq(ServiceDescription("Foo", "Bar", "Baz")));
@@ -171,9 +171,9 @@

 TEST_F(ServiceRegistry_test, SingleServiceDescriptionCanBeFoundWithInstanceName)
 {
-    auto result = registry.add(ServiceDescription("Baz", "Bar", "Foo"));
+    auto result = sut.add(ServiceDescription("Baz", "Bar", "Foo"));
     ASSERT_FALSE(result.has_error());
-    registry.find(searchResults, Wildcard, "Bar");
+    sut.find(searchResults, Wildcard, "Bar");

     EXPECT_THAT(searchResults.size(), Eq(1));
     EXPECT_THAT(searchResults[0].serviceDescription, Eq(ServiceDescription("Baz", "Bar", "Foo")));
@@ -182,8 +182,8 @@
 TEST_F(ServiceRegistry_test, SingleServiceDescriptionCanBeFoundWithServiceName)
 {
     iox::capro::ServiceDescription service1("a", "b", "c");
-    ASSERT_FALSE(registry.add(service1).has_error());
-    registry.find(searchResults, "a", Wildcard);
+    ASSERT_FALSE(sut.add(service1).has_error());
+    sut.find(searchResults, "a", Wildcard);

     EXPECT_THAT(searchResults.size(), Eq(1));
     EXPECT_THAT(searchResults[0].serviceDescription, Eq(service1));
@@ -194,9 +194,9 @@
     ServiceDescription service1;
     ServiceDescription service2("alpha", "bravo", "charlie");

-    ASSERT_FALSE(registry.add(service1).has_error());
-    ASSERT_FALSE(registry.add(service2).has_error());
-    registry.find(searchResults, Wildcard, Wildcard);
+    ASSERT_FALSE(sut.add(service1).has_error());
+    ASSERT_FALSE(sut.add(service2).has_error());
+    sut.find(searchResults, Wildcard, Wildcard);

     EXPECT_THAT(searchResults.size(), Eq(2));
     EXPECT_THAT(searchResults[0].serviceDescription, Eq(service1));
@@ -209,10 +209,10 @@
     iox::capro::ServiceDescription service2("a", "c", "c");
     iox::capro::ServiceDescription service3("a", "d", "d");

-    ASSERT_FALSE(registry.add(service1).has_error());
-    ASSERT_FALSE(registry.add(service2).has_error());
-    ASSERT_FALSE(registry.add(service3).has_error());
-    registry.find(searchResults, "a", Wildcard);
+    ASSERT_FALSE(sut.add(service1).has_error());
+    ASSERT_FALSE(sut.add(service2).has_error());
+    ASSERT_FALSE(sut.add(service3).has_error());
+    sut.find(searchResults, "a", Wildcard);

     EXPECT_THAT(searchResults.size(), Eq(3));

@@ -238,15 +238,15 @@
     iox::capro::ServiceDescription service1("a", "b", "b");
     iox::capro::ServiceDescription service2("c", "d", "d");

-    ASSERT_FALSE(registry.add(service1).has_error());
-    ASSERT_FALSE(registry.add(service2).has_error());
-    registry.find(searchResults, "a", Wildcard);
+    ASSERT_FALSE(sut.add(service1).has_error());
+    ASSERT_FALSE(sut.add(service2).has_error());
+    sut.find(searchResults, "a", Wildcard);

     EXPECT_THAT(searchResults.size(), Eq(1));
     EXPECT_THAT(searchResults[0].serviceDescription, Eq(service1));
     searchResults.clear();

-    registry.find(searchResults, "c", Wildcard);
+    sut.find(searchResults, "c", Wildcard);
     EXPECT_THAT(searchResults.size(), Eq(1));
     EXPECT_THAT(searchResults[0].serviceDescription, Eq(service2));
 }
@@ -257,10 +257,10 @@
     iox::capro::ServiceDescription service2("a", "c", "c");
     iox::capro::ServiceDescription service3("a", "d", "d");

-    ASSERT_FALSE(registry.add(service1).has_error());
-    ASSERT_FALSE(registry.add(service2).has_error());
-    ASSERT_FALSE(registry.add(service3).has_error());
-    registry.find(searchResults, "a", "c");
+    ASSERT_FALSE(sut.add(service1).has_error());
+    ASSERT_FALSE(sut.add(service2).has_error());
+    ASSERT_FALSE(sut.add(service3).has_error());
+    sut.find(searchResults, "a", "c");

     EXPECT_THAT(searchResults.size(), Eq(1));
     EXPECT_THAT(searchResults[0].serviceDescription, Eq(service2));
@@ -274,15 +274,15 @@
     iox::capro::ServiceDescription service4("d", "4", "moep");
     iox::capro::ServiceDescription service5("e", "5", "moep");

-    ASSERT_FALSE(registry.add(service5).has_error());
-    ASSERT_FALSE(registry.add(service3).has_error());
-    ASSERT_FALSE(registry.add(service4).has_error());
-    ASSERT_FALSE(registry.add(service2).has_error());
-    ASSERT_FALSE(registry.add(service1).has_error());
-
-    ASSERT_TRUE(registry.remove(service5));
-    ASSERT_TRUE(registry.remove(service1));
-    registry.find(searchResults, "a", Wildcard);
+    ASSERT_FALSE(sut.add(service5).has_error());
+    ASSERT_FALSE(sut.add(service3).has_error());
+    ASSERT_FALSE(sut.add(service4).has_error());
+    ASSERT_FALSE(sut.add(service2).has_error());
+    ASSERT_FALSE(sut.add(service1).has_error());
+
+    ASSERT_TRUE(sut.remove(service5));
+    ASSERT_TRUE(sut.remove(service1));
+    sut.find(searchResults, "a", Wildcard);

     EXPECT_THAT(searchResults.size(), Eq(0));
 }
@@ -293,10 +293,10 @@
     iox::capro::ServiceDescription service2("a", "c", "c");
     iox::capro::ServiceDescription service3("a", "d", "d");

-    ASSERT_FALSE(registry.add(service1).has_error());
-    ASSERT_FALSE(registry.add(service2).has_error());
-    ASSERT_FALSE(registry.add(service3).has_error());
-    registry.find(searchResults, "a", "g");
+    ASSERT_FALSE(sut.add(service1).has_error());
+    ASSERT_FALSE(sut.add(service2).has_error());
+    ASSERT_FALSE(sut.add(service3).has_error());
+    sut.find(searchResults, "a", "g");

     EXPECT_THAT(searchResults.size(), Eq(0));
 }
@@ -307,30 +307,30 @@
     iox::capro::ServiceDescription service2("a", "c", "c");
     iox::capro::ServiceDescription service3("a", "d", "d");

-    ASSERT_FALSE(registry.add(service1).has_error());
-    ASSERT_FALSE(registry.add(service2).has_error());
-    ASSERT_FALSE(registry.add(service3).has_error());
-
-    EXPECT_TRUE(registry.remove(service2));
-
-    registry.find(searchResults, "a", "c");
+    ASSERT_FALSE(sut.add(service1).has_error());
+    ASSERT_FALSE(sut.add(service2).has_error());
+    ASSERT_FALSE(sut.add(service3).has_error());
+
+    EXPECT_TRUE(sut.remove(service2));
+
+    sut.find(searchResults, "a", "c");
     EXPECT_THAT(searchResults.size(), Eq(0));
 }

 TEST_F(ServiceRegistry_test,
-       AddingMultipleServiceDescriptionWithDifferentServicesAndRemovingSpecificDoesNotFindSpecific)
+       ServiceNotFoundAfterAddingAndRemovingToServiceRegistry)
 {
     iox::capro::ServiceDescription service1("a", "b", "b");
     iox::capro::ServiceDescription service2("b", "c", "c");
     iox::capro::ServiceDescription service3("c", "d", "d");

-    ASSERT_FALSE(registry.add(service1).has_error());
-    ASSERT_FALSE(registry.add(service2).has_error());
-    ASSERT_FALSE(registry.add(service3).has_error());
-
-    EXPECT_TRUE(registry.remove(service2));
-
-    registry.find(searchResults, "b", "c");
+    ASSERT_FALSE(sut.add(service1).has_error());
+    ASSERT_FALSE(sut.add(service2).has_error());
+    ASSERT_FALSE(sut.add(service3).has_error());
+
+    EXPECT_TRUE(sut.remove(service2));
+
+    sut.find(searchResults, "b", "c");
     EXPECT_THAT(searchResults.size(), Eq(0));
 }

@@ -340,15 +340,15 @@
     iox::capro::ServiceDescription service2("a", "c", "c");
     iox::capro::ServiceDescription service3("a", "d", "d");

-    ASSERT_FALSE(registry.add(service1).has_error());
-    ASSERT_FALSE(registry.add(service2).has_error());
-    ASSERT_FALSE(registry.add(service3).has_error());
-
-    EXPECT_TRUE(registry.remove(service1));
-    EXPECT_TRUE(registry.remove(service2));
-    EXPECT_TRUE(registry.remove(service3));
-
-    registry.find(searchResults, "a", Wildcard);
+    ASSERT_FALSE(sut.add(service1).has_error());
+    ASSERT_FALSE(sut.add(service2).has_error());
+    ASSERT_FALSE(sut.add(service3).has_error());
+
+    EXPECT_TRUE(sut.remove(service1));
+    EXPECT_TRUE(sut.remove(service2));
+    EXPECT_TRUE(sut.remove(service3));
+
+    sut.find(searchResults, "a", Wildcard);
     EXPECT_THAT(searchResults.size(), Eq(0));
 }

@@ -359,14 +359,14 @@
     iox::capro::ServiceDescription service3("a", "d", "d");
     iox::capro::ServiceDescription service4("e", "f", "f");

-    ASSERT_FALSE(registry.add(service1).has_error());
-    // add same service a, instance c to check if in registry only one entry is created
-    ASSERT_FALSE(registry.add(service2).has_error());
-    ASSERT_FALSE(registry.add(service2).has_error());
-    ASSERT_FALSE(registry.add(service3).has_error());
-    ASSERT_FALSE(registry.add(service4).has_error());
-
-    auto serviceDescriptionVector = registry.getServices();
+    ASSERT_FALSE(sut.add(service1).has_error());
+    // add same service a, instance c to check if in sut only one entry is created
+    ASSERT_FALSE(sut.add(service2).has_error());
+    ASSERT_FALSE(sut.add(service2).has_error());
+    ASSERT_FALSE(sut.add(service3).has_error());
+    ASSERT_FALSE(sut.add(service4).has_error());
+
+    auto serviceDescriptionVector = sut.getServices();

     bool service1Found = false;
     bool service2Found = false;


added larmor_identity simulation

added larmor_identity simulation

--- simulation.cpp
+++ simulation.cpp
@@ -44,6 +44,7 @@
   bool swap;
   bool swap_nvst;
   bool identity;
+  bool larmor_identity;
   bool testing_mode;

   po::options_description simulations("Available simulations",help_text_length);
@@ -61,7 +62,10 @@
     ("swap_nvst", po::value<bool>(&swap_nvst)->default_value(false)->implicit_value(true),
      "compute expected SWAP_NVST fidelity")
     ("identity", po::value<bool>(&identity)->default_value(false)->implicit_value(true),
-     "compute expected fidelity of an identity operation")
+     "compute expected fidelity of an identity operation on a single spin")
+    ("larmor_identity",
+     po::value<bool>(&larmor_identity)->default_value(false)->implicit_value(true),
+     "compute expected fidelity of an identity operation on a larmor qubit")
     ("test" ,po::value<bool>(&testing_mode)->default_value(false)->implicit_value(true),
      "enable testing mode")
     ;
@@ -215,6 +219,7 @@
           + int(swap)
           + int(swap_nvst)
           + int(identity)
+          + int(larmor_identity)
           != 1) {
         cout << "Please choose one simulation to perform\n";
         return -1;
@@ -419,6 +424,17 @@
     }
   }

+  if (swap_nvst || larmor_identity) {
+    if (targeted_larmor_pairs.size() == 0) {
+      if (larmor_pairs.size() == 0) {
+        cout << "There are no larmor pairs in this system\n";
+      } else {
+        cout << "No larmor pairs are targeted\n";
+      }
+      return -1;
+    }
+  }
+
   // -------------------------------------------------------------------------------------
   // Cluster C-13 nuclei
   // -------------------------------------------------------------------------------------
@@ -613,14 +629,6 @@
   // -------------------------------------------------------------------------------------

   if (swap_nvst) {
-    if (targeted_larmor_pairs.size() == 0) {
-      if (larmor_pairs.size() == 0) {
-        cout << "There are no larmor pairs in this system\n";
-      } else {
-        cout << "No larmor pairs are targeted\n";
-      }
-      return -1;
-    }
     cout << "idx1 idx2 fidelity time pulses\n";
     for (vector<uint> idxs: targeted_larmor_pairs) {
       const uint idx1 = idxs.at(0);
@@ -639,7 +647,7 @@
   }

   // -------------------------------------------------------------------------------------
-  // Fidelity of identity operation
+  // Fidelity of identity operation on a single spin
   // -------------------------------------------------------------------------------------

   if (identity) {
@@ -656,6 +664,36 @@
   }

   // -------------------------------------------------------------------------------------
+  // Fidelity of identity operation on a larmor qubit
+  // -------------------------------------------------------------------------------------
+
+  if (larmor_identity) {
+    cout << "idx1 idx2 fidelity\n";
+    for (vector<uint> idxs: targeted_larmor_pairs) {
+      const uint idx1 = idxs.at(0);
+      const uint idx2 = idxs.at(1);
+      vector<protocol> P(2);
+      for (bool exact : {true,false}) {
+        P.at(exact) = target_identity(nv, idx1, identity_time, exact);
+      }
+
+      const uint cluster = get_cluster_containing_target(nv,idx1);
+      const uint cluster_size = nv.clusters.at(cluster).size();
+      vector<uint> environment_qbits = {}; // in cluster system
+      for(uint i = 0; i < cluster_size; i++) {
+        if (i != idx1 && i != idx2) environment_qbits.push_back(i);
+      }
+      vector<Matrix2cd> larmor_operation(2);
+      larmor_operation.at(true) = I2;
+      larmor_operation.at(false) =
+        ptrace(gates::SWAP_NVST * tp(I2, ptrace(P.at(false).U,environment_qbits)), {1,2});
+
+      cout << idx1 << " " << idx2 << " "
+           << gate_fidelity(larmor_operation.at(0), larmor_operation.at(1)) << endl;
+    }
+  }
+
+  // -------------------------------------------------------------------------------------
   // Fidelity of initializing a thermalized nucleus into |d>
   // -------------------------------------------------------------------------------------


Remove old header file that still lingers around.

--- src/Physics/Simulator.hpp
+++ src/Physics/Simulator.hpp
@@ -1,72 +0,0 @@
-#pragma once
-
-#include <LinearMath/btVector3.h>
-#include <glm/glm.hpp>
-#include <memory>
-
-class btBroadphaseInterface;
-class btDefaultCollisionConfiguration;
-class btCollisionDispatcher;
-class btSequentialImpulseConstraintSolver;
-class btDiscreteDynamicsWorld;
-class btCollisionShape;
-class btDefaultMotionState;
-class btRigidBody;
-
-namespace Physics {
-
-    class RigidBody;
-
-    /// Simulates interactions among given objects.
-    class Simulator {
-        public:
-            /// Constructor
-            Simulator();
-
-            /// Destructor
-            ~Simulator();
-
-            /// Adds a rigid body to the simulation world.
-            /**
-             * @param body The rigid body to simulate.
-             */
-            void Enable(RigidBody& body);
-
-            /// Removes a rigid body from the simulation world.
-            /**
-             * @param body The rigid body to remove.
-             */
-            void Disable(RigidBody& body);
-
-            /// Alters a rigid body to have a sphere shape.
-            /**
-             * @param body The rigid body to change shape of.
-             * @param radius Radius in meters of the sphere.
-             */
-            void UseSphere(RigidBody& body, float radius);
-
-            /// Alters a rigid body to have a plane shape.
-            /**
-             * @param body The rigid body to change shape of.
-             * @param normal Plane normal.
-             * @param planeConstant Plane constant.
-             */
-            void UsePlane(RigidBody& body, glm::vec3 normal, float planeConstant);
-
-        protected:
-            /// Execute a frame
-            /**
-             * @param dt Elapsed time in seconds since last simulation frame.
-             */
-            void Simulate(float dt);
-
-        private:
-            Simulator(const Simulator & other) = delete;
-            btBroadphaseInterface* broadphase = nullptr;
-            btDefaultCollisionConfiguration* collisionConfiguration = nullptr;
-            btCollisionDispatcher* dispatcher = nullptr;
-            btSequentialImpulseConstraintSolver* solver = nullptr;
-            btDiscreteDynamicsWorld* dynamicsWorld = nullptr;
-    };
-
-}


port #559 to glfw service: force window size if larger than screen

--- frontend/services/opengl_glfw/gl/OpenGL_GLFW_Service.cpp
+++ frontend/services/opengl_glfw/gl/OpenGL_GLFW_Service.cpp
@@ -406,6 +406,20 @@
                                          : (m_pimpl->config.windowPlacement.noDec ? GL_FALSE : GL_TRUE));
     ::glfwWindowHint(GLFW_VISIBLE, GL_FALSE); // initially invisible

+    // Hack for window size larger than screen:
+    // The width and height for glfwCreateWindow is just a hint for the underlying window manager. Most window
+    // managers (Windows + Linux/X11) will just resize and maximise the window on the screen, when a size
+    // larger than the screen is requested. When we do not allow resizing, the window managers seems to use the
+    // wanted size.
+    // But we want a resizable window, therefore we need to set the window resizable again. But the second
+    // problem with window managers is, that window creation is an async task (at least with X11). When we
+    // immediately after window creation set the window to be resizable again, the automatic resize will happen
+    // again. We need to delay this to a later point in time (i.e. rendering of first frame).
+    // The async task problem holds (of course) also for querying the window size with glfwGetWindowSize.
+    // Calling this right after glfwCreateWindow will just return our values, not the actual window size.
+    // Therefore here we cannot test for correct window size.
+    ::glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
+
     int monCnt = 0;
     GLFWmonitor** monitors = ::glfwGetMonitors(&monCnt); // primary monitor is first in list
     if (!monitors)
@@ -625,6 +639,9 @@
         std::string mspf = std::to_string(m_pimpl->frame_statistics->last_averaged_mspf);
         std::string title = m_pimpl->config.windowTitlePrefix + " [" + cut_off(fps) + "f/s, " + cut_off(mspf) + "ms/f]";
         glfwSetWindowTitle(m_pimpl->glfwContextWindowPtr, title.c_str());
+
+        // set window resizable according to the asnyc nature of the initial window size stated in init()
+        glfwSetWindowAttrib(m_pimpl->glfwContextWindowPtr, GLFW_RESIZABLE, GLFW_TRUE);

 #ifdef _WIN32
         // TODO fix this for EGL + Win


[#2505] Comment out sysinfo.h

[#2505] Comment out sysinfo.h

--- iRODS/server/core/src/irods_server_control_plane.cpp
+++ iRODS/server/core/src/irods_server_control_plane.cpp
@@ -5,7 +5,7 @@
 #include "stdio.h"

 //#include <readproc.h>
-#include <sysinfo.h>
+//#include <sysinfo.h>

 #include "genQuery.hpp"
 #include "rcMisc.hpp"


iox-#415 Update test case names

iox-#415 Update test case names

Signed-off-by: Simon Hoinkis <f0773326fce8fa552c28fe58d0e558a9f1b7687f@apex.ai>

--- iceoryx_posh/test/moduletests/test_capro_service.cpp
+++ iceoryx_posh/test/moduletests/test_capro_service.cpp
@@ -386,7 +386,7 @@
     EXPECT_EQ(serviceDescription1.getScope(), Scope::INTERNAL);
 }

-TEST_F(ServiceDescription_test, ServiceDescriptionIsInvalidWhen_m_hasServiceOnlyDescriptionIsFalseAndServiceIDIsInvalid)
+TEST_F(ServiceDescription_test, ServiceDescriptionIsInvalidWhenServiceIDIsInvalid)
 {
     IdString_t testServiceID = "INVALID";
     IdString_t testEventID = "1";
@@ -397,7 +397,7 @@
 }

 TEST_F(ServiceDescription_test,
-       ServiceDescriptionIsInvalidWhen_m_hasServiceOnlyDescriptionIsFalseAndServiceIDIsAnyService)
+       ServiceDescriptionIsInvalidWhenServiceIDIsAnyService)
 {
     IdString_t testServiceID = iox::capro::AnyServiceString;
     IdString_t testEventID = "1";
@@ -408,7 +408,7 @@
 }

 TEST_F(ServiceDescription_test,
-       ServiceDescriptionIsInvalidWhen_m_hasServiceOnlyDescriptionIsFalseAndInstanceIDIsInvalid)
+       ServiceDescriptionIsInvalidWhenInstanceIDIsInvalid)
 {
     IdString_t testServiceID = "1";
     IdString_t testEventID = "1";
@@ -419,7 +419,7 @@
 }

 TEST_F(ServiceDescription_test,
-       ServiceDescriptionIsInvalidWhen_m_hasServiceOnlyDescriptionIsFalseAndInstanceIDIsAnyInstance)
+       ServiceDescriptionIsInvalidWhenInstanceIDIsAnyInstance)
 {
     IdString_t testServiceID = "1";
     IdString_t testEventID = "1";
@@ -429,7 +429,7 @@
     EXPECT_FALSE(serviceDescription1.isValid());
 }

-TEST_F(ServiceDescription_test, ServiceDescriptionIsInvalidWhen_m_hasServiceOnlyDescriptionIsFalseAndEventIDIsInvalid)
+TEST_F(ServiceDescription_test, ServiceDescriptionIsInvalidWhenEventIDIsInvalid)
 {
     IdString_t testServiceID = "1";
     IdString_t testEventID = "INVALID";
@@ -439,7 +439,7 @@
     EXPECT_FALSE(serviceDescription1.isValid());
 }

-TEST_F(ServiceDescription_test, ServiceDescriptionIsInvalidWhen_m_hasServiceOnlyDescriptionIsFalseAndEventIDIsAnyEvent)
+TEST_F(ServiceDescription_test, ServiceDescriptionIsInvalidWhenEventIDIsAnyEvent)
 {
     IdString_t testServiceID = "1";
     IdString_t testEventID = iox::capro::AnyEventString;
@@ -450,7 +450,7 @@
 }

 TEST_F(ServiceDescription_test,
-       ServiceDescriptionIsValidWhen_m_hasServiceOnlyDescriptionIsFalseAndServiceInstanceAndEventIDsAreValid)
+       ServiceDescriptionIsValidWhenServiceInstanceAndEventIDsAreValid)
 {
     IdString_t testServiceID = "1";
     IdString_t testEventID = "1";


COMP: PolygonClassStatistics

COMP: PolygonClassStatistics

--- Modules/Applications/AppClassification/app/otbPolygonClassStatistics.cxx
+++ Modules/Applications/AppClassification/app/otbPolygonClassStatistics.cxx
@@ -104,7 +104,7 @@
     // Doc example parameter settings
     SetDocExampleParameterValue("in", "support_image.tif");
     SetDocExampleParameterValue("vec", "variousVectors.sqlite");
-    SetDocExampleParameterValue("field", "label")
+    SetDocExampleParameterValue("field", "label");
     SetDocExampleParameterValue("out","polygonStat.xml");
   }


Added shared_ptr specialization

Added shared_ptr specialization

--- include/clotho/powerset/variable_subset_iterator.hpp
+++ include/clotho/powerset/variable_subset_iterator.hpp
@@ -2,7 +2,7 @@
 #define CLOTHO_VARIABLE_SUBSET_ITERATOR_HELPER_HPP_

 #include "clotho/utility/iterator_helper.hpp"
-#include "clotho/powersets/variable_subset.hpp"
+#include "clotho/powerset/variable_subset.hpp"

 namespace clotho {
 namespace utility {
@@ -49,11 +49,11 @@
         return (*(m_var + m_idx));
     }

-    bool operator==( const self_type & rhs ) {
+    bool operator==( const self_type & rhs ) const {
         return (m_container == rhs.m_container && m_idx == rhs.m_idx);
     }

-    bool operator!=( const self_type & rhs ) {
+    bool operator!=( const self_type & rhs ) const {
         return (m_container != rhs.m_container || m_idx != rhs.m_idx);
     }

@@ -64,6 +64,63 @@
     iterator        m_var;
 };

+/*
+template < class E, class B, class BK, class EK >
+class element_iterator< std::shared_ptr< clotho::powersets::variable_subset< E, B, BK, EK > > > {
+public:
+    typedef clotho::powersets::variable_subset< E, B, BK, EK > container_type;
+    typedef element_iterator< std::shared_ptr< container_type > > self_type;
+    typedef E       value_type;
+
+    typedef typename container_type::bitset_type::size_type size_type;
+
+    typedef typename container_type::powerset_type::variable_iterator  iterator;
+
+    element_iterator( std::shared_ptr< container_type > con, size_type idx = container_type::bitset_type::npos ) :
+        m_container( &con )
+        , m_idx(idx)
+        , m_var(con.getParent()->variable_begin())
+    { }
+
+    element_iterator( const self_type & other ) :
+        m_container( other.m_container )
+        , m_idx( other.m_idx )
+        , m_var( other.m_var )
+    {}
+
+    self_type & operator++() {
+        if( m_idx != container_type::bitset_type::npos ) {
+            m_idx = m_container->find_next(m_idx);
+        }
+        return *this;
+    }
+
+    self_type operator++( int ) {
+        self_type tmp(*this);
+        operator++();
+        return tmp;
+    }
+
+    value_type &  operator*() {
+        assert( m_idx != container_type::bitset_type::npos );
+
+        return (*(m_var + m_idx));
+    }
+
+    bool operator==( const self_type & rhs ) const {
+        return (m_container == rhs.m_container && m_idx == rhs.m_idx);
+    }
+
+    bool operator!=( const self_type & rhs ) const {
+        return (m_container != rhs.m_container || m_idx != rhs.m_idx);
+    }
+
+    virtual ~element_iterator() {}
+protected:
+    std::shared_ptr< container_type >  m_container;
+    size_type       m_idx;
+    iterator        m_var;
+};*/
 template < class E, class B, class BK, class EK >
 struct iterator_helper< clotho::powersets::variable_subset< E, B, BK, EK > > {
     typedef clotho::powersets::variable_subset< E, B, BK, EK > subset_type;


Disable logging for some run modes

Disable logging for some run modes

closes #6300

--- framework/src/base/MooseApp.C
+++ framework/src/base/MooseApp.C
@@ -218,11 +218,15 @@

   else if (getParam<bool>("help"))
   {
+    Moose::perf_log.disable_logging();
+
     _command_line->printUsage();
     _ready_to_exit = true;
   }
   else if (isParamValid("dump"))
   {
+    Moose::perf_log.disable_logging();
+
     _parser.initSyntaxFormatter(Parser::INPUT_FILE, true);

     // Get command line argument following --dump on command line
@@ -240,6 +244,8 @@
   }
   else if (isParamValid("yaml"))
   {
+    Moose::perf_log.disable_logging();
+
     _parser.initSyntaxFormatter(Parser::YAML, true);

     // Get command line argument following --yaml on command line
@@ -257,6 +263,8 @@
   }
   else if (getParam<bool>("syntax"))
   {
+    Moose::perf_log.disable_logging();
+
     std::multimap<std::string, Syntax::ActionInfo> syntax = _syntax.getAssociatedActions();
     Moose::out << "**START SYNTAX DATA**\n";
     for (std::multimap<std::string, Syntax::ActionInfo>::iterator it = syntax.begin(); it != syntax.end(); ++it)
@@ -288,6 +296,8 @@
   }
   else
   {
+    Moose::perf_log.disable_logging();
+
     if (_check_input)
       mooseError("You specified --check-input, but did not provide an input file. Add -i <inputfile> to your command line.");


Changes in miscellaneous_ex3 for -Wshadow.

Issue #24.

--- examples/miscellaneous/miscellaneous_ex3/miscellaneous_ex3.C
+++ examples/miscellaneous/miscellaneous_ex3/miscellaneous_ex3.C
@@ -83,7 +83,7 @@
 // This function computes the Jacobian K(x)
 void compute_jacobian (const NumericVector<Number>& soln,
                        SparseMatrix<Number>&  jacobian,
-                       NonlinearImplicitSystem& sys)
+                       NonlinearImplicitSystem& /*sys*/)
 {
   // Get a reference to the equation system.
   EquationSystems &es = *_equation_system;
@@ -213,7 +213,7 @@
 // x is passed in the soln vector
 void compute_residual (const NumericVector<Number>& soln,
                        NumericVector<Number>& residual,
-                       NonlinearImplicitSystem& sys)
+                       NonlinearImplicitSystem& /*sys*/)
 {
   EquationSystems &es = *_equation_system;


ENH: Code improved. try/catch exception block added. range of slices now      captured from the command line.

--- Examples/IO/RGBImageSeriesReadWrite.cxx
+++ Examples/IO/RGBImageSeriesReadWrite.cxx
@@ -34,16 +34,17 @@
 #include "itkImageSeriesReader.h"
 #include "itkImageFileWriter.h"
 #include "itkNumericSeriesFileNames.h"
+#include "itkPNGImageIO.h"
 // Software Guide : EndCodeSnippet

 int main( int argc, char ** argv )
 {
   // Verify the number of parameters in the command line
-  if( argc < 3 )
+  if( argc < 4 )
     {
     std::cerr << "Usage: " << std::endl;
-    std::cerr << argv[0] << " inputRGBImageFile  outputRGBImageFile " << std::endl;
+    std::cerr << argv[0] << "first last  outputRGBImageFile " << std::endl;
     return -1;
     }

@@ -59,8 +60,10 @@
   // Software Guide : EndLatex

   // Software Guide : BeginCodeSnippet
-  typedef itk::RGBPixel< unsigned char >   PixelType;
-  typedef itk::Image< PixelType, 2 >       ImageType;
+  typedef itk::RGBPixel< unsigned char >        PixelType;
+  const unsigned int Dimension = 3;
+
+  typedef itk::Image< PixelType, Dimension >    ImageType;
   // Software Guide : EndCodeSnippet

@@ -83,20 +86,37 @@
   // Software Guide : EndCodeSnippet

-  const char * inputFilename  = argv[1];
-  const char * outputFilename = argv[2];
+  const unsigned int first = atoi( argv[1] );
+  const unsigned int last  = atoi( argv[2] );

+  const char * outputFilename = argv[3];

   // Software Guide : BeginCodeSnippet
   typedef itk::NumericSeriesFileNames    NameGeneratorType;

   NameGeneratorType::Pointer nameGenerator = NameGeneratorType::New();

-  nameGenerator->SetStartIndex( 0 );
-  nameGenerator->SetEndIndex( 100 );
+  nameGenerator->SetStartIndex( first );
+  nameGenerator->SetEndIndex( last );
   nameGenerator->SetIncrementIndex( 1 );
-  nameGenerator->SetSeriesFormat("file%4d.png");
+
+  nameGenerator->SetSeriesFormat( "vwe%04d.png" );
   // Software Guide : EndCodeSnippet
+
+
+
+  //  Software Guide : BeginLatex
+  //
+  //  The ImageIO object that actually performs the read process
+  //  is now connected to the ImageSeriesReader.
+  //
+  //  Software Guide : EndLatex
+
+  // Software Guide : BeginCodeSnippet
+  reader->SetImageIO( itk::PNGImageIO::New() );
+  // Software Guide : EndCodeSnippet
+
+

   //  Software Guide : BeginLatex
@@ -108,9 +128,19 @@

   // Software Guide : BeginCodeSnippet
   reader->SetFileNames( nameGenerator->GetFileNames()  );
+
   writer->SetFileName( outputFilename );
   // Software Guide : EndCodeSnippet

+  try
+    {
+    reader->Update();
+    }
+  catch( itk::ExceptionObject & excp )
+    {
+    std::cerr << "Error reading the series " << std::endl;
+    std::cerr << excp << std::endl;
+    }

   ImageType::Pointer image = reader->GetOutput();
   writer->SetInput( image );


Add a little FIXME for C++ class printing

git-svn-id: ffe668792ed300d6c2daa1f6eba2e0aa28d7ec6c@72660 91177308-0d34-0410-b5e6-96231b3b80d8

--- lib/AST/DeclPrinter.cpp
+++ lib/AST/DeclPrinter.cpp
@@ -481,6 +481,7 @@
     }

     // Print the class definition
+    // FIXME: Doesn't print access specifiers, e.g., "public:"
     Out << " {\n";
     VisitDeclContext(D);
     Indent() << "}";


Prevent the accumulation of position Packet in the RollingData

--- VelodyneHDL/vtkVelodyneHDLSource.cxx
+++ VelodyneHDL/vtkVelodyneHDLSource.cxx
@@ -151,21 +151,28 @@
   void HandleSensorData(const unsigned char* data, unsigned int length)
   {
     boost::lock_guard<boost::mutex> lock(this->ReaderMutex);
-
-    // Accumulate HDL6 Status byte data
-    if(this->HDLReader->getIsHDL64Data()
-       && !this->HDLReader->getCorrectionsInitialized())
-      {
-        this->HDLReader->appendRollingDataAndTryCorrection(data);
-      }
+    //LiDAR data
+    if(length == 1206)
+    {
+      // Accumulate HDL6 Status byte data
+      if(this->HDLReader->getIsHDL64Data()
+         && !this->HDLReader->getCorrectionsInitialized())
+        {
+          this->HDLReader->appendRollingDataAndTryCorrection(data);
+        }
+      else
+      {
+        this->HDLReader->ProcessHDLPacket(const_cast<unsigned char*>(data), length);
+        if (this->HDLReader->GetDatasets().size())
+        {
+        this->HandleNewData(this->HDLReader->GetDatasets().back());
+        this->HDLReader->GetDatasets().clear();
+        }
+      }
+    }
     else
     {
-      this->HDLReader->ProcessHDLPacket(const_cast<unsigned char*>(data), length);
-      if (this->HDLReader->GetDatasets().size())
-      {
-      this->HandleNewData(this->HDLReader->GetDatasets().back());
-      this->HDLReader->GetDatasets().clear();
-      }
+      //other data
     }

   }
@@ -701,7 +708,7 @@

   if ((++this->PacketCounter % 500) == 0)
     {
-    std::cout << "RECV packets: " << this->PacketCounter << " on " << this->Port << std::endl;;
+    //std::cout << "RECV packets: " << this->PacketCounter << " on " << this->Port << std::endl;;
     }
 }


[1.8>master] [MERGE #4246 @agarwal-sandeep] ARM64: InlineMathPow type specialize to float similar to ARM32

Merge pull request #4246 from agarwal-sandeep:armwork

--- lib/Backend/GlobOpt.cpp
+++ lib/Backend/GlobOpt.cpp
@@ -7465,7 +7465,7 @@

         case Js::OpCode::InlineMathPow:
         {
-#ifndef _M_ARM
+#ifndef _M_ARM32_OR_ARM64
             if (src2Val->GetValueInfo()->IsLikelyInt())
             {
                 bool lossy = false;
@@ -7498,7 +7498,7 @@
             {
 #endif
                 this->TypeSpecializeFloatBinary(instr, src1Val, src2Val, pDstVal);
-#ifndef _M_ARM
+#ifndef _M_ARM32_OR_ARM64
             }
 #endif
             break;


iox-#1036 Remove test_ipc_channel from dust since it is already moved to posh

Signed-off-by: Christian Eltzschig <b1c1d8736f20db3fb6c1c66bb1455ed43909f0d8@elchris.org>

--- iceoryx_dust/test/moduletests/test_ipc_channel.cpp
+++ iceoryx_dust/test/moduletests/test_ipc_channel.cpp
@@ -1,435 +0,0 @@
-// Copyright (c) 2019 by Robert Bosch GmbH. All rights reserved.
-// Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// SPDX-License-Identifier: Apache-2.0
-
-#include "iceoryx_dust/posix_wrapper/message_queue.hpp"
-#include "iceoryx_dust/posix_wrapper/named_pipe.hpp"
-#include "iceoryx_hoofs/internal/posix_wrapper/unix_domain_socket.hpp"
-
-#include "test.hpp"
-
-#include <chrono>
-
-namespace
-{
-using namespace ::testing;
-using namespace iox;
-using namespace iox::posix;
-using namespace iox::units::duration_literals;
-
-#if defined(__APPLE__)
-using IpcChannelTypes = Types<UnixDomainSocket>;
-#elif defined(_WIN32)
-using IpcChannelTypes = Types<NamedPipe>;
-#elif defined(unix) || defined(__unix) || defined(__unix__)
-using IpcChannelTypes = Types<UnixDomainSocket, NamedPipe>;
-#else
-using IpcChannelTypes = Types<MessageQueue, UnixDomainSocket, NamedPipe>;
-#endif
-
-/// NOLINTJUSTIFICATION only used in testing
-/// NOLINTBEGIN(hicpp-avoid-c-arrays,cppcoreguidelines-avoid-c-arrays)
-constexpr char goodName[] = "channel_test";
-constexpr char anotherGoodName[] = "horst";
-constexpr char theUnknown[] = "WhoeverYouAre";
-constexpr char slashName[] = "/miau";
-/// NOLINTEND(hicpp-avoid-c-arrays,cppcoreguidelines-avoid-c-arrays)
-
-/// @req
-/// @brief This test suite verifies that the abstract interface IpcChannelType is fulfilled by both the UnixDomainSocket
-/// class and the MessageQueue class
-/// @pre server and client object are allocated and move to the member object of the fixture
-/// @post StdErr is capture and outputed to StdCout
-/// @note Specific functionality of the underlying implementations of an IpcChannelType are tested in
-/// "UnixDomainSocket_test"
-template <typename T>
-class IpcChannel_test : public Test
-{
-  public:
-    using IpcChannelType = T;
-
-    void SetUp() override
-    {
-        IOX_DISCARD_RESULT(IpcChannelType::unlinkIfExists(goodName));
-
-        auto serverResult = IpcChannelType::create(goodName, IpcChannelSide::SERVER, MaxMsgSize, MaxMsgNumber);
-        ASSERT_THAT(serverResult.has_error(), Eq(false));
-        server = std::move(serverResult.value());
-        ::testing::internal::CaptureStderr();
-
-        auto clientResult = IpcChannelType::create(goodName, IpcChannelSide::CLIENT, MaxMsgSize, MaxMsgNumber);
-        ASSERT_THAT(clientResult.has_error(), Eq(false));
-        client = std::move(clientResult.value());
-    }
-
-    void TearDown() override
-    {
-        std::string output = ::testing::internal::GetCapturedStderr();
-        if (Test::HasFailure())
-        {
-            std::cout << output << std::endl;
-        }
-    }
-
-    static const size_t MaxMsgSize;
-    static constexpr uint64_t MaxMsgNumber = 10U;
-    IpcChannelType server;
-    IpcChannelType client;
-};
-
-template <typename T>
-const size_t IpcChannel_test<T>::MaxMsgSize = IpcChannelType::MAX_MESSAGE_SIZE;
-template <typename T>
-constexpr uint64_t IpcChannel_test<T>::MaxMsgNumber;
-
-#ifdef __clang__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
-#endif
-TYPED_TEST_SUITE(IpcChannel_test, IpcChannelTypes);
-#ifdef __clang__
-#pragma GCC diagnostic pop
-#endif
-
-
-TYPED_TEST(IpcChannel_test, CreateWithTooLargeMessageSizeLeadsToError)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "c9e63950-e7f1-4efc-9d55-a5c445ee7dee");
-    auto serverResult = TestFixture::IpcChannelType::create(
-        goodName, IpcChannelSide::SERVER, TestFixture::MaxMsgSize + 1, TestFixture::MaxMsgNumber);
-    EXPECT_TRUE(serverResult.has_error());
-    ASSERT_THAT(serverResult.get_error(), Eq(IpcChannelError::MAX_MESSAGE_SIZE_EXCEEDED));
-}
-
-TYPED_TEST(IpcChannel_test, CreateNoNameLeadsToError)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "3ffe2cf2-26f4-4b93-8baf-d997dc71e610");
-    auto serverResult = TestFixture::IpcChannelType::create("", IpcChannelSide::SERVER);
-    EXPECT_TRUE(serverResult.has_error());
-    ASSERT_THAT(serverResult.get_error(), Eq(IpcChannelError::INVALID_CHANNEL_NAME));
-}
-
-TYPED_TEST(IpcChannel_test, CreateWithLeadingSlashWorks)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "89340ebd-f80d-480b-833f-da37dff06cef");
-    auto serverResult = TestFixture::IpcChannelType::create(slashName, IpcChannelSide::SERVER);
-    EXPECT_FALSE(serverResult.has_error());
-}
-
-TYPED_TEST(IpcChannel_test, CreateAgainWorks)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "74f7e785-36fc-418c-9807-3dc95ae8aa91");
-    // if there is a leftover from a crashed channel, we can create a new one. This is simulated by creating twice
-    auto first = TestFixture::IpcChannelType::create(anotherGoodName, IpcChannelSide::SERVER);
-    EXPECT_FALSE(first.has_error());
-    auto second = TestFixture::IpcChannelType::create(anotherGoodName, IpcChannelSide::SERVER);
-    EXPECT_FALSE(second.has_error());
-}
-
-TYPED_TEST(IpcChannel_test, CreateAgainAndEmptyWorks)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "c6bf30dc-661d-47f9-8365-2cda5ca067f9");
-    if (std::is_same<typename TestFixture::IpcChannelType, NamedPipe>::value)
-    {
-        // A NamedPipe server creates and destroys a pipe only when it was created
-        // by itself. It is a normal use case that multiple instances can send
-        // or receive concurrently via the same named pipe therefore the ctor of
-        // the named pipe does not purge the underlying data.
-        return;
-    }
-
-    using namespace iox::units;
-    using namespace std::chrono;
-
-    auto serverResult = TestFixture::IpcChannelType::create(anotherGoodName, IpcChannelSide::SERVER);
-    EXPECT_FALSE(serverResult.has_error());
-    auto server = std::move(serverResult.value());
-
-    auto clientResult = TestFixture::IpcChannelType::create(anotherGoodName, IpcChannelSide::CLIENT);
-    EXPECT_FALSE(clientResult.has_error());
-    auto client = std::move(clientResult.value());
-
-    // send and receive as usual
-    std::string message = "Hey, I'm talking to you";
-    bool sent = client.send(message).has_error();
-    EXPECT_FALSE(sent);
-
-    auto receivedMessage = server.receive();
-    ASSERT_THAT(receivedMessage.has_error(), Eq(false));
-    EXPECT_EQ(message, *receivedMessage);
-
-    // send a message, create the server again and there is no message
-    std::string newMessage = "I'm still talking to you brother";
-    sent = client.send(newMessage).has_error();
-    EXPECT_FALSE(sent);
-
-    auto second = TestFixture::IpcChannelType::create(anotherGoodName, IpcChannelSide::SERVER);
-    EXPECT_FALSE(second.has_error());
-    server = std::move(second.value());
-
-    Duration timeout = 100_ms;
-    auto received = server.timedReceive(timeout);
-    ASSERT_TRUE(received.has_error());
-    ASSERT_THAT(received.get_error(), Eq(IpcChannelError::TIMEOUT));
-}
-
-TYPED_TEST(IpcChannel_test, ClientWithoutServerLeadsToNoSuchChannelError)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "6a0f75fc-cb6a-4593-a815-ea587c8e9d9e");
-    auto clientResult = TestFixture::IpcChannelType::create(anotherGoodName, IpcChannelSide::CLIENT);
-    EXPECT_TRUE(clientResult.has_error());
-    ASSERT_THAT(clientResult.get_error(), Eq(IpcChannelError::NO_SUCH_CHANNEL));
-}
-
-
-TYPED_TEST(IpcChannel_test, NotDestroyingServerLeadsToNonOutdatedClient)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "b3eef376-ae04-425b-aa5e-6b0ec4360253");
-    auto serverResult = TestFixture::IpcChannelType::create(anotherGoodName, IpcChannelSide::SERVER);
-    EXPECT_FALSE(serverResult.has_error());
-    auto server = std::move(serverResult.value());
-
-    auto clientResult = TestFixture::IpcChannelType::create(anotherGoodName, IpcChannelSide::CLIENT);
-    EXPECT_FALSE(clientResult.has_error());
-    auto client = std::move(clientResult.value());
-
-    auto outdated = client.isOutdated();
-    EXPECT_FALSE(outdated.has_error());
-    EXPECT_FALSE(outdated.value());
-}
-
-
-TYPED_TEST(IpcChannel_test, DestroyingServerLeadsToOutdatedClient)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "441c4480-57e7-4607-a7e1-df7a9f2f19d0");
-    if (std::is_same<typename TestFixture::IpcChannelType, UnixDomainSocket>::value
-        || std::is_same<typename TestFixture::IpcChannelType, NamedPipe>::value
-        || std::is_same<typename TestFixture::IpcChannelType, MessageQueue>::value)
-    {
-        // isOutdated cannot be realized for unix domain sockets, named pipes or message queues
-        return;
-    }
-
-    auto serverResult = TestFixture::IpcChannelType::create(anotherGoodName, IpcChannelSide::SERVER);
-    EXPECT_FALSE(serverResult.has_error());
-    auto server = std::move(serverResult.value());
-
-    auto clientResult = TestFixture::IpcChannelType::create(anotherGoodName, IpcChannelSide::CLIENT);
-    EXPECT_FALSE(clientResult.has_error());
-    auto client = std::move(clientResult.value());
-
-    // destroy the server and the client is outdated
-    auto dest = server.destroy();
-    ASSERT_FALSE(dest.has_error());
-
-    auto outdated = client.isOutdated();
-    EXPECT_FALSE(outdated.has_error());
-    EXPECT_TRUE(outdated.value());
-}
-
-#if !defined(_WIN32)
-// From:
-// https://docs.microsoft.com/en-us/windows/win32/memory/sharing-files-and-memory
-// The shared memory is not destroyed until every process called CloseHandle on
-// that shared memory. If a process as an abnormal termination the kernel calls
-// CloseHandle on every open handle, therefore shared memory remains should be
-// impossible.
-TYPED_TEST(IpcChannel_test, UnlinkExistingOneWorks)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "ea22483b-4484-4d6d-b2b7-b574eaeb4b95");
-    auto first = TestFixture::IpcChannelType::create(anotherGoodName, IpcChannelSide::SERVER);
-    EXPECT_FALSE(first.has_error());
-    auto ret = TestFixture::IpcChannelType::unlinkIfExists(anotherGoodName);
-    ASSERT_FALSE(ret.has_error());
-    EXPECT_TRUE(ret.value());
-}
-
-TYPED_TEST(IpcChannel_test, UnlinkNonExistingOneWorks)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "c2ecbedc-be63-4f07-bceb-293d5a82c3cd");
-    auto ret = TestFixture::IpcChannelType::unlinkIfExists(theUnknown);
-    ASSERT_FALSE(ret.has_error());
-    EXPECT_FALSE(ret.value());
-}
-#endif
-
-TYPED_TEST(IpcChannel_test, SendAndReceiveWorks)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "76a3df9f-736e-4803-af11-912927c352d4");
-    std::string message = "Hey, I'm talking to you";
-    bool sent = this->client.send(message).has_error();
-    EXPECT_FALSE(sent);
-
-    std::string anotherMessage = "This is a message";
-    sent = this->client.send(anotherMessage).has_error();
-    EXPECT_FALSE(sent);
-
-    auto receivedMessage = this->server.receive();
-    ASSERT_THAT(receivedMessage.has_error(), Eq(false));
-    EXPECT_EQ(message, *receivedMessage);
-
-    receivedMessage = this->server.receive();
-    ASSERT_THAT(receivedMessage.has_error(), Eq(false));
-    EXPECT_EQ(anotherMessage, *receivedMessage);
-}
-
-TYPED_TEST(IpcChannel_test, InvalidAfterDestroy)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "4d878a64-95a4-4f15-8e09-f439c5dbd8eb");
-    ASSERT_FALSE(this->client.destroy().has_error());
-    ASSERT_FALSE(this->client.isInitialized());
-    ASSERT_FALSE(this->server.destroy().has_error());
-    ASSERT_FALSE(this->server.isInitialized());
-}
-
-TYPED_TEST(IpcChannel_test, SendAfterClientDestroyLeadsToError)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "dde79f4d-7bb5-4627-8d26-0bbc3dbf4d7d");
-    auto dest = this->client.destroy();
-    ASSERT_FALSE(dest.has_error());
-
-    std::string message = "Should never be sent";
-    bool sendError = this->client.send(message).has_error();
-    EXPECT_TRUE(sendError);
-}
-
-TYPED_TEST(IpcChannel_test, SendAfterServerDestroyLeadsToError)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "95919ff0-ffe2-47e1-8a1d-0cb1e1df02df");
-    if (std::is_same<typename TestFixture::IpcChannelType, MessageQueue>::value
-        || std::is_same<typename TestFixture::IpcChannelType, NamedPipe>::value)
-    {
-        // NamedPipes are as long opened as long there is one instance
-        // We still can send to the message queue is we destroy the server
-        // it would be outdated, this is checked in another test
-        return;
-    }
-
-    auto dest = this->server.destroy();
-    ASSERT_FALSE(dest.has_error());
-
-    std::string message = "Try to send me";
-    auto sendResult = this->client.send(message);
-    EXPECT_TRUE(sendResult.has_error());
-}
-
-
-TYPED_TEST(IpcChannel_test, ReceiveAfterServerDestroyLeadsToError)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "a704f003-097c-486b-92d3-4284f6b5abbe");
-    std::string message = "hello world!";
-    bool sendError = this->client.send(message).has_error();
-    EXPECT_FALSE(sendError);
-
-    auto dest = this->server.destroy();
-    ASSERT_FALSE(dest.has_error());
-
-    bool receiveError = this->server.receive().has_error();
-    EXPECT_THAT(receiveError, Eq(true));
-}
-
-TYPED_TEST(IpcChannel_test, SendMoreThanAllowedLeadsToError)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "4e49c2fe-7278-4bc5-b91f-41777287e452");
-    std::string shortMessage = "Iceoryx rules.";
-    ASSERT_THAT(this->client.send(shortMessage).has_error(), Eq(false));
-
-    std::string longMessage(this->server.MAX_MESSAGE_SIZE + 8, 'x');
-    ASSERT_THAT(this->client.send(longMessage).has_error(), Eq(true));
-
-    auto receivedMessage = this->server.receive();
-    ASSERT_THAT(receivedMessage.has_error(), Eq(false));
-    EXPECT_EQ(shortMessage, receivedMessage.value());
-}
-
-TYPED_TEST(IpcChannel_test, SendMaxMessageSizeWorks)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "f471df17-d49a-43cd-85a9-bbe457cfd012");
-    std::string message(this->MaxMsgSize - 1, 'x');
-    auto clientReturn = this->client.send(message);
-    ASSERT_THAT(clientReturn.has_error(), Eq(false));
-
-    auto receivedMessage = this->server.receive();
-    ASSERT_THAT(receivedMessage.has_error(), Eq(false));
-    EXPECT_EQ(message, receivedMessage.value());
-}
-
-TYPED_TEST(IpcChannel_test, wildCreate)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "98d6003c-3f1a-4a8b-a524-ec1071bc9527");
-    auto result = TestFixture::IpcChannelType::create();
-    ASSERT_THAT(result.has_error(), Eq(true));
-}
-
-#if !(defined(__APPLE__) || defined(unix) || defined(__unix) || defined(__unix__))
-TYPED_TEST(IpcChannel_test, TimedSendWorks)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "12fe0ee5-37f8-4c34-ba44-ed50872a5fd9");
-    using namespace iox::units;
-    using namespace std::chrono;
-
-    std::string msg = "ISG rules. And some more                                                                        "
-                      "data to have a bit                                                                              "
-                      "longer message";
-
-    Duration maxTimeout = 100_ms;
-
-    // send till it breaks
-    for (;;)
-    {
-        auto before = system_clock::now();
-        auto result = this->client.timedSend(msg, maxTimeout);
-        auto after = system_clock::now();
-        if (result.has_error())
-        {
-            ASSERT_THAT(result.get_error(), Eq(IpcChannelError::TIMEOUT));
-            // Do not exceed timeout
-            auto timeDiff = units::Duration(after - before);
-            EXPECT_GT(timeDiff, maxTimeout);
-
-            break;
-        }
-    }
-}
-#endif
-
-TYPED_TEST(IpcChannel_test, TimedReceiveWorks)
-{
-    ::testing::Test::RecordProperty("TEST_ID", "978c8c4e-9829-4467-b664-45457104d4a9");
-    using namespace iox::units;
-    using namespace std::chrono;
-
-    std::string msg = "very useful text for tranmission";
-    Duration timeout = 100_ms;
-
-    ASSERT_FALSE(this->client.send(msg).has_error());
-
-    auto received = this->server.timedReceive(timeout);
-    ASSERT_FALSE(received.has_error());
-
-    EXPECT_EQ(received.value(), msg);
-
-    auto before = system_clock::now();
-    received = this->server.timedReceive(timeout);
-    auto after = system_clock::now();
-
-    ASSERT_TRUE(received.has_error());
-    ASSERT_THAT(received.get_error(), Eq(IpcChannelError::TIMEOUT));
-
-    auto timeDiff = units::Duration(after - before);
-    EXPECT_GT(timeDiff, timeout);
-}
-} // namespace


Add MPI functions

Add MPI functions

--- include/S2.hpp
+++ include/S2.hpp
@@ -52,6 +52,26 @@

 #endif

+#ifdef HAVE_MPI
+
+int64_t S2_easy_mpi(int64_t x,
+                    int64_t y,
+                    int64_t z,
+                    int64_t c,
+                    int threads);
+
+#ifdef HAVE_INT128_T
+
+int128_t S2_easy_mpi(int128_t x,
+                     int64_t y,
+                     int64_t z,
+                     int64_t c,
+                     int threads);
+
+#endif
+
+#endif
+
 /// ------------------------ S2_hard() -------------------------------

 int64_t S2_hard(int64_t x,
@@ -72,6 +92,28 @@

 #endif

+#ifdef HAVE_MPI
+
+int64_t S2_hard_mpi(int64_t x,
+                    int64_t y,
+                    int64_t z,
+                    int64_t c,
+                    int64_t s2_hard_approx,
+                    int threads);
+
+#ifdef HAVE_INT128_T
+
+int128_t S2_hard_mpi(int128_t x,
+                     int64_t y,
+                     int64_t z,
+                     int64_t c,
+                     int128_t s2_hard_approx,
+                     int threads);
+
+#endif
+
+#endif
+
 } // namespace primecount

 #endif


dEQP-VK.renderpass.attachment: secondary command buffer is missing VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT usage flag

Spec:
	"If vkCmdExecuteCommands is being called within a render pass instance, any given element of pCommandBuffers
	 must have been recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"

(internal ref: renderpass 3, --deqp-caselist=dEQP-VK.renderpass.attachment.*)

--- external/vulkancts/modules/vulkan/vktRenderPassTests.cpp
+++ external/vulkancts/modules/vulkan/vktRenderPassTests.cpp
@@ -1772,7 +1772,7 @@
 		{
 			m_commandBuffer = allocateCommandBuffer(vk, device, commandBufferPool, VK_COMMAND_BUFFER_LEVEL_SECONDARY);

-			beginCommandBuffer(vk, *m_commandBuffer, (VkCommandBufferUsageFlags)0, renderPass, subpassIndex, framebuffer, VK_FALSE, (VkQueryControlFlags)0, (VkQueryPipelineStatisticFlags)0);
+			beginCommandBuffer(vk, *m_commandBuffer, vk::VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, renderPass, subpassIndex, framebuffer, VK_FALSE, (VkQueryControlFlags)0, (VkQueryPipelineStatisticFlags)0);
 			pushRenderCommands(vk, *m_commandBuffer);
 			endCommandBuffer(vk, *m_commandBuffer);
 		}


added a divide by zero check

added a divide by zero check

--- code/cmd_score.cc
+++ code/cmd_score.cc
@@ -56,10 +56,11 @@
 	++count;
       }
     }
-    sendTo(fmt("You have a total of %s%i%s skill points with an average of %s%i%s per skill.\n\r") %
-	   cyan() % total % norm() %
-	   cyan() % (int)(total/count) % norm());
-
+    if(count > 0){
+      sendTo(fmt("You have a total of %s%i%s skill points with an average of %s%i%s per skill.\n\r") %
+	     cyan() % total % norm() %
+	     cyan() % (int)(total/count) % norm());
+    }

     realTimePassed((time(0) - desc->session.connect), 0, &playing_time);


Invariant hoisting for CheckFixedFields

Invariant hoisting for CheckFixedFields

Fixed initial value loading and loop invariant hoisting to enable hoisting of CheckFixedFields.
Improves a few benchmarks in Octane (0.6% overall): DeltaBlue 3.2%, Mandreel 1.6%, Richards 2.2%, Splay 3.5%

--- lib/Backend/GlobOpt.cpp
+++ lib/Backend/GlobOpt.cpp
@@ -5217,6 +5217,7 @@
     Value *initialValue;
     StackSym *symStore;

+#if 0
     if (!DoFieldPRE(loop))
     {
         return;
@@ -5227,6 +5228,7 @@
         // Consider: This needs to handle CheckFixedMethods
         return;
     }
+#endif

     if (loop->allFieldsKilled || loop->fieldKilled->Test(originalPropertySym->m_id))
     {
@@ -18144,54 +18146,68 @@
         return false;
     }

-    if (sym->IsStackSym() && sym->AsStackSym()->IsTypeSpec())
-    {
-        StackSym *varSym = sym->AsStackSym()->GetVarEquivSym(this->func);
-        // Make sure the int32/float64 version of this is available.
-        // Note: We could handle this by converting the src, but usually the
-        // conversion is hoistable if this is hoistable anyway.
-        // In some weird cases it may not be however, so we'll bail out.
-        if (sym->AsStackSym()->IsInt32())
-        {
-            Assert(block->globOptData.liveInt32Syms->Test(varSym->m_id));
-            if (!loop->landingPad->globOptData.liveInt32Syms->Test(varSym->m_id) ||
-                loop->landingPad->globOptData.liveLossyInt32Syms->Test(varSym->m_id) &&
-                !block->globOptData.liveLossyInt32Syms->Test(varSym->m_id))
-            {
-                // Either the int32 sym is not live in the landing pad, or it's lossy in the landing pad and the
-                // instruction's block is using the lossless version. In either case, the instruction cannot be hoisted
-                // without doing a conversion of this operand.
+    if (sym->IsStackSym())
+    {
+        if (sym->AsStackSym()->IsTypeSpec())
+        {
+            StackSym *varSym = sym->AsStackSym()->GetVarEquivSym(this->func);
+            // Make sure the int32/float64 version of this is available.
+            // Note: We could handle this by converting the src, but usually the
+            // conversion is hoistable if this is hoistable anyway.
+            // In some weird cases it may not be however, so we'll bail out.
+            if (sym->AsStackSym()->IsInt32())
+            {
+                Assert(block->globOptData.liveInt32Syms->Test(varSym->m_id));
+                if (!loop->landingPad->globOptData.liveInt32Syms->Test(varSym->m_id) ||
+                    loop->landingPad->globOptData.liveLossyInt32Syms->Test(varSym->m_id) &&
+                    !block->globOptData.liveLossyInt32Syms->Test(varSym->m_id))
+                {
+                    // Either the int32 sym is not live in the landing pad, or it's lossy in the landing pad and the
+                    // instruction's block is using the lossless version. In either case, the instruction cannot be hoisted
+                    // without doing a conversion of this operand.
+                    return false;
+                }
+            }
+            else if (sym->AsStackSym()->IsFloat64())
+            {
+                if (!loop->landingPad->globOptData.liveFloat64Syms->Test(varSym->m_id))
+                {
+                    return false;
+                }
+            }
+            else
+            {
+                Assert(sym->AsStackSym()->IsSimd128());
+                if (!loop->landingPad->globOptData.liveSimd128F4Syms->Test(varSym->m_id) && !loop->landingPad->globOptData.liveSimd128I4Syms->Test(varSym->m_id))
+                {
+                    return false;
+                }
+            }
+
+            sym = sym->AsStackSym()->GetVarEquivSym(this->func);
+        }
+        else
+        {
+            // Make sure the var version of this is available.
+            // Note: We could handle this by converting the src, but usually the
+            // conversion is hoistable if this is hoistable anyway.
+            // In some weird cases it may not be however, so we'll bail out.
+            if (!loop->landingPad->globOptData.liveVarSyms->Test(sym->m_id))
+            {
                 return false;
             }
         }
-        else if (sym->AsStackSym()->IsFloat64())
-        {
-            if (!loop->landingPad->globOptData.liveFloat64Syms->Test(varSym->m_id))
-            {
-                return false;
-            }
-        }
-        else
-        {
-            Assert(sym->AsStackSym()->IsSimd128());
-            if (!loop->landingPad->globOptData.liveSimd128F4Syms->Test(varSym->m_id) && !loop->landingPad->globOptData.liveSimd128I4Syms->Test(varSym->m_id))
-            {
-                return false;
-            }
-        }
-
-        sym = sym->AsStackSym()->GetVarEquivSym(this->func);
+    }
+    else if (sym->IsPropertySym())
+    {
+        if (!loop->landingPad->globOptData.liveFields->Test(sym->m_id))
+        {
+            return false;
+        }
     }
     else
     {
-        // Make sure the var version of this is available.
-        // Note: We could handle this by converting the src, but usually the
-        // conversion is hoistable if this is hoistable anyway.
-        // In some weird cases it may not be however, so we'll bail out.
-        if (!loop->landingPad->globOptData.liveVarSyms->Test(sym->m_id))
-        {
-            return false;
-        }
+        return false;
     }

     // We rely on having a value.


Fix VkDeviceSize -> size_t warning in synchronization tests

Change-Id: Ieafc30f1e6bcf9f74f45bf8d0f110c1df5af8948

--- external/vulkancts/modules/vulkan/vktSynchronization.cpp
+++ external/vulkancts/modules/vulkan/vktSynchronization.cpp
@@ -209,7 +209,7 @@
 			range.offset	= newMemory->getOffset();
 			range.size		= bufferParameters.size;

-			deMemcpy(newMemory->getHostPtr(), bufferParameters.memory, bufferParameters.size);
+			deMemcpy(newMemory->getHostPtr(), bufferParameters.memory, (size_t)bufferParameters.size);
 			VK_CHECK(deviceInterface.flushMappedMemoryRanges(device, 1, &range));

 			barrier.sType			= VK_STRUCTURE_TYPE_MEMORY_BARRIER;


fixed display bug added volume to info display

--- code/shopowned.cc
+++ code/shopowned.cc
@@ -89,16 +89,19 @@
   int count=0, value=0, price=0, discount=100, tmp=0;
   unsigned int i=0;
   char buf[256];
+  int volume=0;

   // if not owned, or owned and has "owner" or "info"
   if(!isOwned() || hasAccess(SHOPACCESS_INFO)){
     for(tt=keeper->getStuff();tt;tt=tt->nextThing){
       o=dynamic_cast<TObj *>(tt);
       ++count;
+      volume+=o->getVolume();
       value+=o->obj_flags.cost;
       price+=o->shopPrice(1, shop_nr, -1, &discount);
     }
     keeper->doTell(ch->getName(), "I have %i talens and %i items worth %i talens and selling for %i talens.", keeper->getMoney(), count, value, price);
+    keeper->doTell(ch->getName(), "My inventory takes up %i cubic inches of space.", volume);

     keeper->doTell(ch->getName(), "That puts my total value at %i talens.",
 		   keeper->getMoney()+value);
@@ -502,7 +505,7 @@

     db.query("select action, sum(talens) as tsum from shoplog where shop_nr=%i group by action order by tsum desc", shop_nr);

-    ssprintf(buf, "%s<r>%-12.12s %s<1>\n\r",
+    ssprintf(buf, "<r>%-12.12s %s<1>\n\r",
 	     "Action", "Total Talens");
     sb += buf;


INTEGRATION: CWS pbrwuno (1.3.88); FILE MERGED
2005/11/02 11:43:48 fs 1.3.88.13: #i10000# exception specifications
2005/10/25 07:13:16 fs 1.3.88.12: #i53095# knitting lose ends (amongst others, make the handlers available as service)
2005/10/24 08:42:11 fs 1.3.88.11: start making the handlers full-fledged components, with using a new infrastructure replacing extensions/source/inc/componentmodule.*
2005/10/17 14:09:42 fs 1.3.88.10: #i53095# some cleanup of remaining TODOs
2005/10/13 13:01:12 fs 1.3.88.9: #i53095# introduce an XObjectInspector/Model
2005/10/11 13:30:01 fs 1.3.88.8: #i53095# phase 3:
introduced XPropertyHandler and XObjectInspectorUI
same open issues as in previous phase
(plus probably some more, since not everything is tested, yet :-\)
2005/10/05 07:16:22 fs 1.3.88.7: RESYNC: (1.3-1.4); FILE MERGED
2005/09/05 07:41:56 fs 1.3.88.6: #i53095# phase 3, part 1: introduced XPropertyControl and relatives,
describing one control in the ObjectInspector, responsible for one
property
known issues:
- rebuildPropertyUI can cause problems now: If the user clicks into
  the control for property A, which causes property B to be committed,
  which causes the UI for property A to be rebuilt, then this will
  crash currently. Reason: rebuildPropertyUI now synchronously replaces
  the VCL-Window of the rebuilt control, which is exactly the one
  which is still in some MouseButtonDown-handler.
  possible solutions:
  - see if rebuiltPropertyUI can be obsoleted - handlers should be able
    to just obtain the XPropertyControl from the PropertyUI, and
    re-initialize the control. Shouldn't they?`
  - make one of the steps in the chain (mouse-click, handler-call,
    rebuildPropertyUI-callback) asynchronous.
2005/08/18 12:44:36 fs 1.3.88.5: #i53095#, phase 2

moved (nearly) all property handling to dedicated handlers, the controller is
now simply managing a set of handlers

open issues for making the property browser completely generic:
- target page for a property - at the moment, the pbrw uses form-specific
  knowledge
- relative position of properties. Again, the pbrw uses the OPropertyInfoService
  which is not generic
- isComposeable for a given property. Also OPropertyInfoService-dependent ATM
- help ids of pages and the pbrw as a whole. They're hard-coded at the moment

other open issues:
everything in the code which is tagged with TOD/UNOize. Those are items which
do not immediately hinder phase 3 (real UNOization, i.e. definition of new
UNO interfaces for the handlers, the controller, and so on), but need to be
addressed in phase 4 (knit lose ends)
2005/08/16 05:39:09 fs 1.3.88.4: #i53095# completely moved the handling of actuating properties into dedicated handlers
2005/08/12 16:30:16 fs 1.3.88.3: - more fine-grained control in the IPropertyBrowserUI which elements
  to enable or disable
- moved designing the SQL command into a dedicated handler
- some more reactions on actuating properties move to dedicated handlers
- *nearly* completed implementation of the "composed browser UI", which
  collects and combines UI change requests (IPropertyBrowserUI)
  (still missing: proper auto-firing)
2005/08/10 15:41:48 fs 1.3.88.2: #i53095#
get rid of nearly all [1] the implementations in OPropertyBrowserController::Clicked,
and move them to a FormComponentHandler

[1] still to migrate:
- browsing for events (needs a dedicated event property handler)
- handling for clicking the button of the Command property - this
  is kind of asynchronous, and IPropertyHandler is not yet prepared for this
2005/08/09 14:00:10 fs 1.3.88.1: #i53095# phase 1:
- don't use strings to transver values between controls and introspectee, but Anys
- first version of a dedicated property handler for form-component-related properties
  (not yet completed)
known regressions over previous phase:
- handlers for events not yet implemented, thus some assertions
- click handlers for form-component-related properties do not yet work,
  thus the browse buttons mostly do not work

--- extensions/source/propctrlr/xsdvalidationpropertyhandler.hxx
+++ extensions/source/propctrlr/xsdvalidationpropertyhandler.hxx
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: xsdvalidationpropertyhandler.hxx,v $
  *
- *  $Revision: 1.4 $
+ *  $Revision: 1.5 $
  *
- *  last change: $Author: rt $ $Date: 2005-09-08 20:33:57 $
+ *  last change: $Author: vg $ $Date: 2006-03-14 11:35:25 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -54,51 +54,43 @@
     //====================================================================
     //= XSDValidationPropertyHandler
     //====================================================================
-    class XSDValidationPropertyHandler : public PropertyHandler
+    class XSDValidationPropertyHandler;
+    typedef HandlerComponentBase< XSDValidationPropertyHandler > XSDValidationPropertyHandler_Base;
+    class XSDValidationPropertyHandler : public XSDValidationPropertyHandler_Base
     {
     private:
         ::std::auto_ptr< XSDValidationHelper >  m_pHelper;

     public:
-        // HandlerFactory
-        inline static IPropertyHandler* Create(
-            const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,
-            const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxIntrospectee,
-            const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& _rxContextDocument,
-            const ::com::sun::star::uno::Reference< ::com::sun::star::script::XTypeConverter >& _rxTypeConverter
-        )
-        {
-            return new XSDValidationPropertyHandler( _rxIntrospectee, _rxContextDocument, _rxTypeConverter );
-        }
+        XSDValidationPropertyHandler(
+            const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext
+        );
+
+        static ::rtl::OUString SAL_CALL getImplementationName_static(  ) throw (::com::sun::star::uno::RuntimeException);
+        static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_static(  ) throw (::com::sun::star::uno::RuntimeException);

     protected:
-        XSDValidationPropertyHandler(
-            const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxIntrospectee,
-            const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& _rxContextDocument,
-            const ::com::sun::star::uno::Reference< ::com::sun::star::script::XTypeConverter >& _rxTypeConverter
-        );
         ~XSDValidationPropertyHandler();

     protected:
-        // IPropertyHandler overriables
-        virtual bool                        SAL_CALL supportsUIDescriptor(  PropertyId _nPropId ) const;
-        virtual ::com::sun::star::uno::Any  SAL_CALL getPropertyValue( PropertyId _nPropId, bool _bLazy = true ) const;
-        virtual void                        SAL_CALL setPropertyValue( PropertyId _nPropId, const ::com::sun::star::uno::Any& _rValue );
-        virtual ::std::vector< ::rtl::OUString >
-                                            SAL_CALL getSupersededProperties( ) const;
-        virtual ::std::vector< ::rtl::OUString >
-                                            SAL_CALL getActuatingProperties( ) const;
-        virtual void                        SAL_CALL describePropertyUI( PropertyId _nPropId, PropertyUIDescriptor& /* [out] */ _rDescriptor ) const;
-        virtual void                        SAL_CALL initializePropertyUI( PropertyId _nPropId, IPropertyBrowserUI* _pUpdater );
-        virtual bool                        SAL_CALL requestUserInputOnButtonClick( PropertyId _nPropId, bool _bPrimary, ::com::sun::star::uno::Any& _rData );
-        virtual void                        SAL_CALL executeButtonClick( PropertyId _nPropId, bool _bPrimary, const ::com::sun::star::uno::Any& _rData, IPropertyBrowserUI* _pUpdater );
-        virtual void                        SAL_CALL actuatingPropertyChanged( PropertyId _nActuatingPropId, const ::com::sun::star::uno::Any& _rNewValue, const ::com::sun::star::uno::Any& _rOldValue, IPropertyBrowserUI* _pUpdater, bool );
-        virtual void                        SAL_CALL startAllPropertyChangeListening( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& _rxListener );
-        virtual void                        SAL_CALL stopAllPropertyChangeListening( );
+        // XPropertyHandler overriables
+        virtual ::com::sun::star::uno::Any  SAL_CALL getPropertyValue( const ::rtl::OUString& _rPropertyName ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
+        virtual void                        SAL_CALL setPropertyValue( const ::rtl::OUString& _rPropertyName, const ::com::sun::star::uno::Any& _rValue ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
+        virtual ::com::sun::star::uno::Sequence< ::rtl::OUString >
+                                            SAL_CALL getSupersededProperties( ) throw (::com::sun::star::uno::RuntimeException);
+        virtual ::com::sun::star::uno::Sequence< ::rtl::OUString >
+                                            SAL_CALL getActuatingProperties( ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void                        SAL_CALL describePropertyLine( const ::rtl::OUString& _rPropertyName, ::com::sun::star::inspection::LineDescriptor& /* [out] */ _rDescriptor, const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControlFactory >& _rxControlFactory ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::NullPointerException, ::com::sun::star::uno::RuntimeException);
+        virtual ::com::sun::star::inspection::InteractiveSelectionResult
+                                            SAL_CALL onInteractivePropertySelection( const ::rtl::OUString& _rPropertyName, sal_Bool _bPrimary, ::com::sun::star::uno::Any& _rData, const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XObjectInspectorUI >& _rxInspectorUI ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::NullPointerException, ::com::sun::star::uno::RuntimeException);
+        virtual void                        SAL_CALL actuatingPropertyChanged( const ::rtl::OUString& _rActuatingPropertyName, const ::com::sun::star::uno::Any& _rNewValue, const ::com::sun::star::uno::Any& _rOldValue, const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XObjectInspectorUI >& _rxInspectorUI, sal_Bool ) throw (::com::sun::star::lang::NullPointerException, ::com::sun::star::uno::RuntimeException);
+        virtual void                        SAL_CALL addPropertyChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& _rxListener ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void                        SAL_CALL removePropertyChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& _rxListener ) throw (::com::sun::star::uno::RuntimeException);

         // PropertyHandler overridables
-        virtual ::std::vector< ::com::sun::star::beans::Property >
-                                            SAL_CALL implDescribeSupportedProperties() const;
+        virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property >
+                                            SAL_CALL doDescribeSupportedProperties() const;
+        virtual void onNewComponent();

     private:
         bool    implPrepareRemoveCurrentDataType() SAL_THROW(());


Remove trailing whitespace from BorderlessWindow

--- Source/BorderlessWindow.cpp
+++ Source/BorderlessWindow.cpp
@@ -156,7 +156,7 @@
         if (widget)
         {
             str += QString(" to %1 (%2)").arg(widget->objectName()).arg(widget->metaObject()->className());
-        }
+        }
         str += "\n";

         OutputDebugStringA(str.toLocal8Bit().data());


fix save manager not allowing absolute paths

--- game/state/savemanager.cpp
+++ game/state/savemanager.cpp
@@ -270,15 +270,13 @@
 	std::vector<SaveMetadata> saveList;
 	try
 	{
-		fs::path currentPath = fs::current_path().string();
 		if (!fs::exists(saveDirectory) && !fs::create_directories(saveDirectory))
 		{
 			LogWarning("Save directory \"%s\" not found, and could not be created!", saveDirectory);
 			return saveList;
 		}

-		for (auto i = fs::directory_iterator(currentPath / saveDirectory);
-		     i != fs::directory_iterator(); ++i)
+		for (auto i = fs::directory_iterator(saveDirectory); i != fs::directory_iterator(); ++i)
 		{
 			if (i->path().extension().string() != saveFileExtension.str())
 			{