X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/6fe7ccc865dc7d7541b93c5bcaf6368d2c98a174..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/bytecompiler/Label.h diff --git a/bytecompiler/Label.h b/bytecompiler/Label.h index 21fa463..b76c648 100644 --- a/bytecompiler/Label.h +++ b/bytecompiler/Label.h @@ -10,7 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of + * 3. Neither the name of Apple Inc. ("Apple") nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * @@ -37,9 +37,11 @@ namespace JSC { + class BytecodeGenerator; + class Label { public: - explicit Label(BytecodeGenerator* generator) + explicit Label(BytecodeGenerator& generator) : m_refCount(0) , m_location(invalidLocation) , m_generator(generator) @@ -66,6 +68,12 @@ namespace JSC { int refCount() const { return m_refCount; } bool isForward() const { return m_location == invalidLocation; } + + int bind() + { + ASSERT(!isForward()); + return bind(0, 0); + } private: typedef Vector, 8> JumpVector; @@ -74,7 +82,7 @@ namespace JSC { int m_refCount; unsigned m_location; - BytecodeGenerator* m_generator; + BytecodeGenerator& m_generator; mutable JumpVector m_unresolvedJumps; };