Re: avoiding crashes when trying to call a c++ callback from octave
"John W. Eaton" <[email protected]> Thu, 8 Feb 2024 14:45:50 -0500
| Newsgroups | gmane.comp.gnu.octave.general |
|---|---|
| Message-ID | <[email protected]> |
V2UgaGF2ZSBtb3ZlZCB0byBhIHdlYiBiYXNlZCBmb3J1bSBmb3IgY29tbXVuaXR5IGhlbHAgZGlz Y3Vzc2lvbnMgYXQgCmh0dHBzOi8vb2N0YXZlLmRpc2NvdXJzZS5ncm91cC9jL2hlbHAKClBsZWFz ZSB1c2UgdGhhdCB3ZWIgZm9ybSBhcyBhbGwgZGlzY3Vzc2lvbiBoYXBwZW4gdGhlcmUgbm93LgoK andlCgoKCk9uIDIvOC8yNCAwNzoxNywgR3VpZG9SYW1vbiB3cm90ZToKPiBIZWxsbyBldmVyeW9u ZSwKPiAKPiBJIGhhdmUgYW4gaXNzdWUgd2l0aCBkaXNwYXRjaGluZyBjbGFzc2VzIGluIEdOVSBP Y3RhdmUgOC40IG9uIFdpbmRvd3MgCj4gMTAuIEkgaW5zdGFsbGVkIGl0IHZpYSB0aGUgeDY0IGV4 ZSBpbnN0YWxsZXIuCj4gCj4gSSBhbSB0cnlpbmcgdG8gY2FsbCBhIGMrKyBmdW5jdGlvbiBpbiBH TlUgb2N0YXZlLCBzbyBJIHVzZSBhIGRpc3BhdGNoZXIgCj4gKi5jYyBmaWxlIGFzIGZvbGxvd3Ms IHdoaWNoIEkgdGhlbiBzdWNjZXNzZnVsbHkgY29tcGlsZSBpbnRvIGFuIG9jdC1maWxlOgo+IAo+ IG1rb2N0ZmlsZSBteV9kaXNwYXRjaGVyX2Z1bmN0aW9uLmNjIC1jCj4gbWtvY3RmaWxlIG15X2Rp c3BhdGNoZXJfZnVuY3Rpb24ubyBteV9jcHBfY2xhc3NfcGltcGwubyAtbHF1YWRtYXRoCj4gCj4g I2luY2x1ZGU8b2N0YXZlL29jdC5oPgo+ICNpbmNsdWRlPG9jdGF2ZS9kTkRBcnJheS5oPgo+IAo+ IC8qIGJvZHkgYW5kIGlubGluZS1tZW1iZXJzIG9mIE15X2NwcF9jbGFzcyAqLwo+IAo+IERFRlVO X0RMRChteV9kaXNwYXRjaGVyX2Z1bmN0aW9uLCBhcmdzLCBuYXJnb3V0LCAKPiAiRGVidWdnaW5n X215X2Rpc3BhdGNoZXJfZnVuY3Rpb25fc3VpdGFibGVfbmFtZSIpewo+ICDCoCDCoCAvLwo+ICDC oCDCoCAvLyBmbGFnID0gTXlfY3BwX2NsYXNzLm15X2NwcF9mdW5jdGlvbigpOwo+ICDCoCDCoCAv Lwo+ICDCoCDCoCAvLyArKysrIHBvc3Nlc3MgYW4gaW5zdGFuY2UKPiAgwqAgwqAgc3RhdGljIE15 X2NwcF9jbGFzcyBteV9jbGFzc19pbnN0YW5jZTsgLy8gSSBhbHNvIHRyaWVkIHdpdGhvdXQgCj4g InN0YXRpYyIsIGkuZS4gcmUtaW5zdGFudGlhdGluZyBhdCBlYWNoIGNhbGwuIFNhbWUgYmVoYXZp b3VyIChpLmUuIAo+IG9jdGF2ZSBjbG9zZXMpLgo+ICDCoCDCoCAvLwo+ICDCoCDCoCAvLyArKysr IGFjcXVpcmUgYXJyYXlzCj4gIMKgIMKgIE5EQXJyYXkgYXJyYXlfeCA9IGFyZ3MoMCkuYXJyYXlf dmFsdWUoKTsKPiAgwqAgwqAgTkRBcnJheSBhcnJheV95ID0gYXJncygxKS5hcnJheV92YWx1ZSgp Owo+ICDCoMKgwqAgLy8KPiAgwqDCoMKgIC8vICsrKysgbG9hZCBpbnB1dHMgaW50byBjbGFzcwo+ ICDCoMKgwqAgZm9yKGludCBpPTA7aTwxMDsrK2kpeyBteV9jbGFzc19pbnN0YW5jZS54W2ldID0g YXJyYXlfeChpKTsgfQo+ICDCoMKgwqAgLy8KPiAgwqDCoMKgIC8vICsrKysgY29tcHV0ZQo+ICDC oMKgwqAgbXlfY2xhc3NfaW5zdGFuY2UuY29tcHV0ZSgpOwo+ICDCoMKgwqAgLy8KPiAgwqDCoMKg IC8vICsrKysgZXhwb3J0IG91dHB1dHMKPiAgwqDCoMKgIGZvcihpbnQgaT0wO2k8MjA7KytpKXsg YXJyYXlfeShpKSA9IG15X2NsYXNzX2luc3RhbmNlLnlbaV07IH0KPiAgwqDCoMKgIC8vCj4gIMKg wqDCoCAvLyArKysrIHBhY2sgYW5kIHJldHVybiByZXN1bHQKPiAgwqAgwqAgb2N0YXZlX3ZhbHVl X2xpc3QgcmV0dmFsOwo+ICDCoCDCoCAvLwo+ICDCoCDCoCByZXR2YWwuYXBwZW5kKCBvY3RhdmVf dmFsdWUoYXJyYXlfeSApICk7Cj4gIMKgwqDCoCByZXR1cm4gcmV0dmFsOwo+IH0KPiAKPiBUaGUg T2N0YXZlIGNvZGUsIHdoaWNoIGNhbGxzIHRoZSBvY3QgZmlsZSwgaXM6Cj4gCj4gYXNzZXJ0KCBz aXplKHgpPT1bMTAsMV0gJiYgc2l6ZSh4KT09WzIwLDFdICk7ICUgdGhpcyBwYXNzZXMgc3VjY2Vz c2Z1bGx5Cj4geSA9IG15X2Rpc3BhdGNoZXJfZnVuY3Rpb24oeCx5KTsKPiAKPiBUaGUgY29uc3Ry dWN0b3Igb2YgTXlfY3BwX2NsYXNzIHJlbGllcyBvbiBhIHNpbmdsZXRvbiwgd2hpY2ggaGFzIGJl ZW4gCj4gaW1wbGVtZW50ZWQgd2l0aCBhIG5vbi1tZW1iZXIgZnVuY3Rpb24gdGhhdCByZXR1cm5z IGEgc3RhdGljIGluc3RhbmNlIG9mIAo+IHRoZSBTaW5nbGV0b24uCj4gCj4gRXZlcnl0aW1lIEkg Y2FsbCB0aGUgZGlzcGF0Y2hlciBmcm9tIE9jdGF2ZSBHVUksIE9jdGF2ZSBpbW1lZGlhdGVseSAK PiBjbG9zZXMgYWxsIHdpbmRvd3Mgb2YgdGhlIHNvZnR3YXJlIGFuZCBlbmRzLiAoTWF5YmUgYSBz dWJncm91cCBvZiB1cyBjYW4gCj4gYWdyZWUgdGhhdCBlaXRoZXIgbXkgY2xhc3MgbGVha3Mgb3Ig T2N0YXZlIGVuY291bnRlcnMgYSBidWcuIEkgaGF2ZSAKPiBkZWJ1Z2dlZCBteSBjbGFzcy4gSSB3 b3VsZCBhcHByZWNpYXRlIGF2b2lkaW5nIGEgZGlzY3Vzc2lvbiBpbnRvIHRoYXQgYXJlYS4pCj4g Cj4gSSBkbyBub3Qga25vdyBvciB3YW50IHRvIGtub3cgb3IgZGlzY3VzcyB3aGV0aGVyIHRoaXMg aXMgYSBidWcuCj4gCj4gSSBhbSBpbnRlcmVzdGVkIGluIGFjcXVpcmluZyBhIG1lYW5zIHRvIGRv aW5nIHdoYXQgdGhlIGFib3ZlIGNvZGUgd291bGQgCj4gYmUgZXhwZWN0ZWQgdG8gZG8gdW5kZXIg cmVhc29uYWJsZSBuYWl2ZSBhc3N1bXB0aW9ucyAod2hpY2ggYXJlOiBJIGhhdmUgCj4gYSBjbGFz cy4gSSBjYW4gY29uc3RydWN0IGFuZCBkZXN0cnVjdCBpbnN0YW5jZXMgb2YgaXQgaW4gYysrIG11 bHRpcGxlIAo+IHRpbWVzIHdpdGhvdXQgbWVtb3J5IGxlYWtzLiBFYWNoIGluc3RhbmNlIGhhcyBi dWZmZXJzIHgseSBhbmQgYSBtZW1iZXIgCj4gZnVuY3Rpb24gY29tcHV0ZSB0aGF0IG1hbmlwdWxh dGVzIHkuIEkgd2FudCB0byBvYnRhaW4geSBpbiBPY3RhdmUgZnJvbSAKPiBnaXZlbiB4IGluIE9j dGF2ZSkuCj4gCj4gQ3VycmVudGx5LCBteSB3b3JrLWFyb3VuZCBpcyB0byB3cml0ZSBhIHRleHQg ZmlsZSBpbiBvY3RhdmUsIHRoZW4gbWFrZSBhIAo+IHN5c3RlbSBjYWxsIGZyb20gb2N0YXZlIHRv IG15IGNwcCBleGUsIHRoaXMgbWFuaXB1bGF0ZXMgdGhlIHRleHRmaWxlLCAKPiBhbmQgb2N0YXZl IHJlYWRzIHRoZSByZXN1bHRzLiBUaGUgaXNzdWUgaXMgd2l0aCBzcGVlZCBvZiBleGVjdXRpb24s IAo+IHNpbmNlIHRoZSB3cml0ZSB0byBoYXJkZHJpdmUgaW50cm9kdWNlcyBlbm91cm1vdXMgbGF0 ZW5jeSwgcGFydGljdWxhcmx5IAo+IHNpbmNlIEkgbmVlZCB+MTAwMDAgZXZhbGF0aW9ucyBwZXIg dXNlIGNhc2UuCj4gCj4gVGhhbmsgeW91IGZvciBhbnkgaGVscC4KPiAKPiBLaW5kIHJlZ2FyZHMs Cj4gR3VpZG8KCgoKLS0tLS0tLS0tLQpXZSBhcmUgdHJhbnNpdGlvbmluZyB0byBhIHdlYiBiYXNl ZCBmb3J1bQpmb3IgY29tbXVuaXR5IGhlbHAgZGlzY3Vzc2lvbnMgYXQKaHR0cHM6Ly9vY3RhdmUu ZGlzY291cnNlLmdyb3VwL2MvaGVscAo=