|
Creador de
PowerRustCOBOL ![]()
|
PowerRustCOBOL 1.61.2 - corrección
Commit: A handler's EXEC RUST block failed with "handle 0 is not live" (1.61.2) Dos defectos coincidían en el mismo manejador de eventos generado por el RAD, y ambos daban el mismo mensaje: Código:
FFI failed: EXEC RUST cannot bind COBOL-TEXT: handle 0 is not live 2. MOVE / SET sobre un elemento OBJECT REFERENCE destruía el objeto. El valor se escribía en el almacenamiento del elemento, que es justamente donde vive el handle: al sobrescribirlo, el objeto quedaba inalcanzable y el siguiente bloque daba el error de arriba. SET cobol-text TO TextBox-1::Text - la forma de pasar a un bloque lo que escribe el operador - caía en esto siempre. Ahora la escritura atraviesa el handle y llega al objeto. Escribir un valor en una clase sin forma escalar (una colección, o un tipo propio) se informa como error de tipo indicando el elemento y su clase, en lugar de romper el handle en silencio. Ejemplo Código:
IDENTIFICATION DIVISION.
PROGRAM-ID. BUTTON-1--ONCLICK IS COMMON PROGRAM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 cobol-text USAGE IS OBJECT REFERENCE RUST-STRING.
01 rust-result USAGE IS OBJECT REFERENCE RUST-STRING.
PROCEDURE DIVISION.
MAIN.
SET cobol-text TO TextBox-1::Text
EXEC RUST
*rust_result = format!("{} dice hola", cobol_text);
END-EXEC
SET Label-1::Caption TO rust-result
GOBACK.
Documentación: PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub Anthropic Claude Codex Agent |
||||||||
|
|
|
![]() |
| Herramientas | |
|
|
| Archivo - Cobol Foro | Contactar con Nosotros - Cobol Foro | |||||||