Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QV4::Compiler::ControlFlowUnwind Struct Reference

#include <qv4compilercontrolflow_p.h>

+ Inheritance diagram for QV4::Compiler::ControlFlowUnwind:
+ Collaboration diagram for QV4::Compiler::ControlFlowUnwind:

Public Member Functions

 ControlFlowUnwind (Codegen *cg, Type type)
 
void setupUnwindHandler ()
 
void emitUnwindHandler ()
 
virtual BytecodeGenerator::ExceptionHandlerunwindHandler () override
 
- Public Member Functions inherited from QV4::Compiler::ControlFlow
 ControlFlow (Codegen *cg, Type type)
 
virtual ~ControlFlow ()
 
UnwindTarget unwindTarget (UnwindType type, const QString &label=QString())
 
virtual QString label () const
 
bool hasLoop () const
 
BytecodeGenerator::ExceptionHandlerparentUnwindHandler ()
 

Public Attributes

BytecodeGenerator::ExceptionHandler unwindLabel
 
- Public Attributes inherited from QV4::Compiler::ControlFlow
Codegencg
 
ControlFlowparent
 
Type type
 

Additional Inherited Members

- Public Types inherited from QV4::Compiler::ControlFlow
enum  Type {
  Loop , With , Block , Finally ,
  Catch
}
 
enum  UnwindType { Break , Continue , Return }
 
using Reference = Codegen::Reference
 
using BytecodeGenerator = Moth::BytecodeGenerator
 
using Instruction = Moth::Instruction
 
- Protected Member Functions inherited from QV4::Compiler::ControlFlow
virtual BytecodeGenerator::Label getUnwindTarget (UnwindType, const QString &=QString())
 
virtual bool requiresUnwind ()
 
QString loopLabel () const
 
BytecodeGeneratorgenerator () const
 

Detailed Description

Definition at line 127 of file qv4compilercontrolflow_p.h.

Constructor & Destructor Documentation

◆ ControlFlowUnwind()

QV4::Compiler::ControlFlowUnwind::ControlFlowUnwind ( Codegen * cg,
Type type )
inline

Definition at line 131 of file qv4compilercontrolflow_p.h.

Member Function Documentation

◆ emitUnwindHandler()

void QV4::Compiler::ControlFlowUnwind::emitUnwindHandler ( )
inline

Definition at line 141 of file qv4compilercontrolflow_p.h.

References QV4::Moth::BytecodeGenerator::addInstruction(), QV4::Compiler::ControlFlow::generator(), Q_ASSERT, and QV4::Compiler::ControlFlow::requiresUnwind().

Referenced by QV4::Compiler::ControlFlowBlock::~ControlFlowBlock(), QV4::Compiler::ControlFlowCatch::~ControlFlowCatch(), QV4::Compiler::ControlFlowFinally::~ControlFlowFinally(), QV4::Compiler::ControlFlowUnwindCleanup::~ControlFlowUnwindCleanup(), and QV4::Compiler::ControlFlowWith::~ControlFlowWith().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setupUnwindHandler()

void QV4::Compiler::ControlFlowUnwind::setupUnwindHandler ( )
inline

Definition at line 136 of file qv4compilercontrolflow_p.h.

References QV4::Compiler::ControlFlow::generator(), QV4::Moth::BytecodeGenerator::newExceptionHandler(), and unwindLabel.

Referenced by QV4::Compiler::ControlFlowBlock::ControlFlowBlock(), QV4::Compiler::ControlFlowFinally::ControlFlowFinally(), QV4::Compiler::ControlFlowUnwindCleanup::ControlFlowUnwindCleanup(), QV4::Compiler::ControlFlowWith::ControlFlowWith(), and QV4::Compiler::ControlFlowCatch::~ControlFlowCatch().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unwindHandler()

virtual BytecodeGenerator::ExceptionHandler * QV4::Compiler::ControlFlowUnwind::unwindHandler ( )
inlineoverridevirtual

Reimplemented from QV4::Compiler::ControlFlow.

Reimplemented in QV4::Compiler::ControlFlowCatch, and QV4::Compiler::ControlFlowFinally.

Definition at line 149 of file qv4compilercontrolflow_p.h.

References QV4::Moth::BytecodeGenerator::ExceptionHandler::isValid(), QV4::Compiler::ControlFlow::parentUnwindHandler(), and unwindLabel.

Referenced by QV4::Compiler::ControlFlowFinally::unwindHandler().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ unwindLabel


The documentation for this struct was generated from the following file: