OpCodes.Localloc-Feld
Reserviert eine bestimmte Anzahl von Bytes aus dem lokalen dynamischen Speicherpool und legt die Adresse (einen flüchtigen Zeiger, Typ *) des ersten reservierten Bytes auf dem Auswertungsstapel ab.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared ReadOnly Localloc As OpCode
'Usage
Dim value As OpCode
value = OpCodes.Localloc
public static readonly OpCode Localloc
public:
static initonly OpCode Localloc
public static final OpCode Localloc
public static final var Localloc : OpCode
Hinweise
In der folgenden Tabelle werden das hexadezimale und das Assemblyformat der MSIL (Microsoft Intermediate Language) jeweils mit einer Kurzreferenz aufgeführt:
Format |
Assemblyformat |
Beschreibung |
---|---|---|
FE 0F |
localloc |
Reserviert Speicher vom lokalen Heap. |
Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:
Die Anzahl der zu reservierenden Bytes wird auf dem Stapel abgelegt.
Die Anzahl der Bytes wird vom Stapel geholt, und eine dieser Größe entsprechende Menge an Speicher wird vom lokalen Heap reserviert.
Ein Zeiger auf das erste Byte des reservierten Speichers wird auf dem Stapel abgelegt.
Die localloc-Anweisung reserviert size (Typ natural unsigned int) Bytes vom lokalen dynamischen Speicherpool und gibt die Adresse (einen flüchtigen Zeiger, Typ *) des ersten reservierten Bytes zurück. Der zurückgegebene Speicherblock wird nur dann mit 0 initialisiert, wenn das Initialisierungsflag für die Methode auf true festgelegt ist. Wenn die aktuelle Methode ein Ret ausführt, wird der lokale Speicherpool für die Wiederverwendung verfügbar gemacht.
Die erhaltene Adresse wird ausgerichtet, sodass alle primitiven Datentypen mit den stind-Anweisungen (z. B. Stind_I4) darunter gespeichert und mit den ldind-Anweisungen (z. B. Ldind_I4) geladen werden können.
Die localloc-Anweisung kann nicht in einem filter-Block, einem catch, finally-Block oder einem fault-Block auftreten.
Wenn für die Verarbeitung der Anforderung nicht genügend Speicher vorhanden ist, wird StackOverflowException ausgelöst.
Die folgende Überladung der Emit-Methode verwendet den localloc-Opcode:
- ILGenerator.Emit(OpCode)
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
OpCodes-Klasse
OpCodes-Member
System.Reflection.Emit-Namespace