PR# 19812 MEMORY_STEAM.dispose

Problem Report Summary
Submitter: gobobe
Category: EiffelBase
Priority: Low
Date: 2021/11/07
Class: Bug
Severity: Non-critical
Number: 19812
Release: 20.11
Confidential: No
Status: Open
Environment: win
Synopsis: MEMORY_STEAM.dispose

I got this crash at the end of the execution of one of my Gobo tests:

xslt: PANIC: Unexpected harmful signal (Segmentation violation) ...

xslt: system execution failed.
Following is the set of recorded exceptions.
NB: The raised panic may have induced completely inconsistent information:

Class / Object      Routine                Nature of exception           Effect
RUN-TIME            root's set-up          Unexpected harmful signal (Segmentation violation):
<0000000000000000>                         Eiffel run-time panic.        Bye


I suspect that this is happening when the Eiffel runtime is cleaning up memory before exit.
So I looked for implementations of `dispose` in the Gobo code, but found none which could explain this crash.

But while looking at implementations of `dispose`, I found the one in class `MEMORY_STREAM` which I think is wrong. It eventually calls `internal_area` which is a reference, so that's bad. And `internal_area` of type `MANAGED_POINTER` already has its own `dispose`. So I think that the `dispose` in `MEMORY_STREAM` should be removed. I know that this class is obsolete, but I just wanted to point it out to you anyway.

Eric Bezault
To Reproduce

Problem Report Interactions