On Monday, 22 December 2025 at 17:05:16 UTC, bauss wrote:
On Monday, 22 December 2025 at 17:03:48 UTC, SarK0Y wrote:
On Monday, 22 December 2025 at 16:54:56 UTC, bauss wrote:
On Monday, 22 December 2025 at 13:53:54 UTC, SarK0Y wrote:

You have this wonderful line nuking your memory:

```
*map = 0;
```
Thanks for Your reply, but i disagree..

```D
  map.name = "name1";
  *map = 0; // if it torpedoes memory
    map.prnt; // then sigsegv must be here
    simply_print_time ("start tst for __emp");
    map.prnt; // but it's here
```

It is undefined behavior, so it can happen at anytime, anywhere.

unfortunately, situation been not that simple == seems there is problem to initialize class GmpInt properly: i made two funcs to create class..
[zz.mk](https://github.com/SarK0Y/DLang/blob/556fefa36e51b46a80de3717d8c495842c36224f/source/class_gmp_z.d#L141)

```D
 static zz* mk () {
        auto __zz = new zz(0);
        auto size_zz = __traits (classInstanceSize, GmpInt);
        auto alloc_zz = cast (zz) malloc (size_zz);
        alloc_zz = __zz.dup;
        alloc_zz.name = "alloc_zz";
        alloc_zz.prnt;
        zz* ret = &alloc_zz;
        ret.prnt;
        return ret;
    }
```
[zz._mk](https://github.com/SarK0Y/DLang/blob/556fefa36e51b46a80de3717d8c495842c36224f/source/class_gmp_z.d#L152)

```D
    static zz* _mk()
    {
        auto __zz = new zz(0);
        zz* ret = &__zz;
        return ret;
    }
```
in short, not sufficient allocation is very culprit here..

PS. variant w/ malloc runs more stable :)

Reply via email to