When a simple value type with Q_GADGET is passed from C++ side to QML, and from there to another signal the value type object gets destroyed and the signal receives a null object.
Here's a sample log:
In the example, a `Point` object is created on the stack and passed to the QML side with a signal. `Point` is successfully copied during that transfer and the signal handler `onPointCreated` properly receives the `Point`.
But when the signal handler `onPointCreated` passes the `Point` to another signal, the `Point` gets copied but then immediately destroyed. Then `onSignal1` receives a null object.
Also, If you look at the log, the `Point` object with index 4 is only destroyed when I close the app. If I click on the button multiple times, there will be a pool of `Point` objects that are not destroyed until I close the app. For instance, try clicking the button 10 times and then clear the output, then close the app. You'll see logs for 10 `Point` objects being destroyed.