[PR #36] [MERGED] NetReferences don't use GCHandles any more #181

Closed
opened 2026-05-05 11:20:18 -06:00 by gitea-mirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/qmlnet/qmlnet/pull/36
Author: @devmil
Created: 7/24/2018
Status: Merged
Merged: 7/24/2018
Merged by: @pauldotknopf

Base: masterHead: features/GCHandle_free_NetReferences


📝 Commits (10+)

  • d7b6818 NetReferences don't use GCHandles any more
  • 8620f48 Review changes, ObjectTaggerTests are now disabled
  • 56850dc NetReference.Instance: Throw instead of returning null
  • 140b48b ObjectTagger is now non-static
  • c9226fe ObjectTagger: lock against race conditions
  • 6fe2f25 Merge branch 'improvement/ObjectTagger_tests' into features/GCHandle_free_NetReferences
  • 58f9e6b enable ObjectTagger unit tests again
  • 0e7b63f ObjectId robustness increased
  • 25c7e9c Merge branch 'master' into features/GCHandle_free_NetReferences
  • 6586439 Added a bench mark project.

📊 Changes

17 files changed (+265 additions, -120 deletions)

View changed files

📝 src/native/QmlNet/QmlNet/qml/NetValue.cpp (+1 -5)
📝 src/native/QmlNet/QmlNet/types/Callbacks.cpp (+6 -6)
📝 src/native/QmlNet/QmlNet/types/Callbacks.h (+1 -1)
📝 src/native/QmlNet/QmlNet/types/NetReference.cpp (+4 -26)
📝 src/native/QmlNet/QmlNet/types/NetReference.h (+1 -5)
src/net/Qml.Net.Benchmarks/Config.cs (+15 -0)
src/net/Qml.Net.Benchmarks/Program.cs (+12 -0)
src/net/Qml.Net.Benchmarks/Qml.Net.Benchmarks.csproj (+13 -0)
src/net/Qml.Net.Benchmarks/ReferenceBenchmarks.cs (+93 -0)
📝 src/net/Qml.Net.sln (+6 -0)
📝 src/net/Qml.Net/Internal/Behaviors/MVVMQmlInteropBehavior.cs (+11 -44)
📝 src/net/Qml.Net/Internal/DefaultCallbacks.cs (+2 -2)
📝 src/net/Qml.Net/Internal/IQmlInteropBehavior.cs (+2 -2)
📝 src/net/Qml.Net/Internal/InteropBehaviors.cs (+4 -4)
📝 src/net/Qml.Net/Internal/Types/Callbacks.cs (+10 -10)
📝 src/net/Qml.Net/Internal/Types/NetReference.cs (+82 -14)
📝 src/net/Qml.Net/Properties.cs (+2 -1)

📄 Description

References are counted manually on .Net side
Behaviors now don't get an event on each NetReference create / delete but when an .Net object enters Native the first time and when it leaves the Native space


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/qmlnet/qmlnet/pull/36 **Author:** [@devmil](https://github.com/devmil) **Created:** 7/24/2018 **Status:** ✅ Merged **Merged:** 7/24/2018 **Merged by:** [@pauldotknopf](https://github.com/pauldotknopf) **Base:** `master` ← **Head:** `features/GCHandle_free_NetReferences` --- ### 📝 Commits (10+) - [`d7b6818`](https://github.com/qmlnet/qmlnet/commit/d7b6818bba85e44909240082fa07eb6094a33581) NetReferences don't use GCHandles any more - [`8620f48`](https://github.com/qmlnet/qmlnet/commit/8620f4857cdac73fc82bd5fa4c1c0c3017056735) Review changes, ObjectTaggerTests are now disabled - [`56850dc`](https://github.com/qmlnet/qmlnet/commit/56850dcb0ba1c0b0b602ec59cc9162e4d2bb42eb) NetReference.Instance: Throw instead of returning null - [`140b48b`](https://github.com/qmlnet/qmlnet/commit/140b48b1e1ad9eb3c33a6a11ed52d325822dcf2c) ObjectTagger is now non-static - [`c9226fe`](https://github.com/qmlnet/qmlnet/commit/c9226fed2d11a984740e81e20f0e27e3fbf9ed2c) ObjectTagger: lock against race conditions - [`6fe2f25`](https://github.com/qmlnet/qmlnet/commit/6fe2f25c0ebd96032201052934d5da0d029ae67e) Merge branch 'improvement/ObjectTagger_tests' into features/GCHandle_free_NetReferences - [`58f9e6b`](https://github.com/qmlnet/qmlnet/commit/58f9e6be13ed419e7e5994600628d4bd4e3cf62f) enable ObjectTagger unit tests again - [`0e7b63f`](https://github.com/qmlnet/qmlnet/commit/0e7b63f94d2c8b676b050afebe21de5067f4a49c) ObjectId robustness increased - [`25c7e9c`](https://github.com/qmlnet/qmlnet/commit/25c7e9c1b2c5bd25847a9a619e0c42575786bc82) Merge branch 'master' into features/GCHandle_free_NetReferences - [`6586439`](https://github.com/qmlnet/qmlnet/commit/658643954fc972b213a533ebebfa29c642f3c653) Added a bench mark project. ### 📊 Changes **17 files changed** (+265 additions, -120 deletions) <details> <summary>View changed files</summary> 📝 `src/native/QmlNet/QmlNet/qml/NetValue.cpp` (+1 -5) 📝 `src/native/QmlNet/QmlNet/types/Callbacks.cpp` (+6 -6) 📝 `src/native/QmlNet/QmlNet/types/Callbacks.h` (+1 -1) 📝 `src/native/QmlNet/QmlNet/types/NetReference.cpp` (+4 -26) 📝 `src/native/QmlNet/QmlNet/types/NetReference.h` (+1 -5) ➕ `src/net/Qml.Net.Benchmarks/Config.cs` (+15 -0) ➕ `src/net/Qml.Net.Benchmarks/Program.cs` (+12 -0) ➕ `src/net/Qml.Net.Benchmarks/Qml.Net.Benchmarks.csproj` (+13 -0) ➕ `src/net/Qml.Net.Benchmarks/ReferenceBenchmarks.cs` (+93 -0) 📝 `src/net/Qml.Net.sln` (+6 -0) 📝 `src/net/Qml.Net/Internal/Behaviors/MVVMQmlInteropBehavior.cs` (+11 -44) 📝 `src/net/Qml.Net/Internal/DefaultCallbacks.cs` (+2 -2) 📝 `src/net/Qml.Net/Internal/IQmlInteropBehavior.cs` (+2 -2) 📝 `src/net/Qml.Net/Internal/InteropBehaviors.cs` (+4 -4) 📝 `src/net/Qml.Net/Internal/Types/Callbacks.cs` (+10 -10) 📝 `src/net/Qml.Net/Internal/Types/NetReference.cs` (+82 -14) 📝 `src/net/Qml.Net/Properties.cs` (+2 -1) </details> ### 📄 Description References are counted manually on .Net side Behaviors now don't get an event on each NetReference create / delete but when an .Net object enters Native the first time and when it leaves the Native space --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
gitea-mirror 2026-05-05 11:20:18 -06:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/qmlnet#181
No description provided.