All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opalj.ai.MonitorInstructionsDomain.scala Maven / Gradle / Ivy

The newest version!
/* BSD 2-Clause License - see OPAL/LICENSE for details. */
package org.opalj
package ai

/**
 * Domain that defines all methods related to monitor instructions.
 *
 * @author Michael Eichberg
 */
trait MonitorInstructionsDomain { this: ValuesDomain =>

    /**
     * Handles a `monitorenter` instruction.
     *
     * @note A monitor enter instruction may throw a `NullPointerException`.
     */
    def monitorenter(pc: Int, value: DomainValue): Computation[Nothing, ExceptionValue]

    /**
     * Handles a `monitorexit` instruction.
     *
     * @note A monitor exit instruction may throw a `NullPointerException` or an
     *      `IllegalMonitorStateException`.
     */
    def monitorexit(pc: Int, value: DomainValue): Computation[Nothing, ExceptionValues]

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy