Compare commits

..

1 Commits

Author SHA1 Message Date
Onyad
aa8d4e4750 up 2025-09-04 14:42:16 -05:00
4 changed files with 13 additions and 4 deletions

View File

@@ -50,7 +50,7 @@ jobs:
packages: googletest libgmock-dev libgtest-dev packages: googletest libgmock-dev libgtest-dev
version: 1.0 version: 1.0
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Configure - name: Configure
run: | run: |
@@ -108,7 +108,7 @@ jobs:
os: [ubuntu-latest, windows-latest, macos-latest] os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Build - name: Build
run: | run: |
@@ -126,7 +126,7 @@ jobs:
os: [ubuntu-latest, windows-latest, macos-latest] os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Build - name: Build
shell: bash shell: bash

View File

@@ -12,7 +12,7 @@ jobs:
permissions: permissions:
contents: write contents: write
steps: steps:
- uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 # v4.1.1 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- run: git archive $GITHUB_REF -o "yaml-cpp-${GITHUB_REF:10}.tar.gz" - run: git archive $GITHUB_REF -o "yaml-cpp-${GITHUB_REF:10}.tar.gz"
- run: gh release upload ${GITHUB_REF:10} "yaml-cpp-${GITHUB_REF:10}.tar.gz" - run: gh release upload ${GITHUB_REF:10} "yaml-cpp-${GITHUB_REF:10}.tar.gz"
env: env:

View File

@@ -25,6 +25,7 @@ class YAML_CPP_API memory {
memory() : m_nodes{} {} memory() : m_nodes{} {}
node& create_node(); node& create_node();
void merge(const memory& rhs); void merge(const memory& rhs);
size_t size() const;
private: private:
using Nodes = std::set<shared_node>; using Nodes = std::set<shared_node>;

View File

@@ -9,6 +9,10 @@ void memory_holder::merge(memory_holder& rhs) {
if (m_pMemory == rhs.m_pMemory) if (m_pMemory == rhs.m_pMemory)
return; return;
if (m_pMemory->size() < rhs.m_pMemory->size()) {
std::swap(m_pMemory, rhs.m_pMemory);
}
m_pMemory->merge(*rhs.m_pMemory); m_pMemory->merge(*rhs.m_pMemory);
rhs.m_pMemory = m_pMemory; rhs.m_pMemory = m_pMemory;
} }
@@ -22,5 +26,9 @@ node& memory::create_node() {
void memory::merge(const memory& rhs) { void memory::merge(const memory& rhs) {
m_nodes.insert(rhs.m_nodes.begin(), rhs.m_nodes.end()); m_nodes.insert(rhs.m_nodes.begin(), rhs.m_nodes.end());
} }
size_t memory::size() const {
return m_nodes.size();
}
} // namespace detail } // namespace detail
} // namespace YAML } // namespace YAML