View Javadoc

1   package com.tapina.robe.swi.clib.stdlib;
2   
3   import com.tapina.robe.runtime.CodeBlock;
4   import com.tapina.robe.runtime.Environment;
5   import com.tapina.robe.swi.clib.Stub;
6   
7   /***
8    * This function registers the specified function to be called without arguments when the program terminates normally.
9    * More than one function can be registered in this way.
10   * Returns: Zero if the function succeeds.
11   */
12  public class AtExit extends Stub {
13      public void executeStub(Environment environment) {
14          final int[] R = environment.getCpu().R;
15          final CodeBlock atexit = environment.getMemoryMap().addEntryPoint(R[0]);
16          Exit.registerExitHandler(atexit);
17          R[0] = 0;
18      }
19  }