gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog libbase/curl_adapter.cpp server...


From: Benjamin Wolsey
Subject: [Gnash-commit] gnash ChangeLog libbase/curl_adapter.cpp server...
Date: Fri, 13 Jun 2008 13:42:42 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Benjamin Wolsey <bwy>   08/06/13 13:42:42

Modified files:
        .              : ChangeLog 
        libbase        : curl_adapter.cpp 
        server/vm      : ASHandlers.cpp ActionExec.cpp ActionExec.h 

Log message:
                * server/vm/ActionExec.{h,cpp}: rename advanceNextPC to 
adjustNextPC.
                  Move try block processing into a separate function to make it 
tidier
                  (if it were obvious what the meaning of the return value was 
it would
                  be still better). Use switch instead of ifs now that it isn't 
directly
                  in a while loop. Drop an apparently useless assignment of 
false to
                  mReturning. Add doxygen comments to header.
                * server/vm/ASHandlers.cpp: update advanceNextPC to 
adjustNextPC.
                * libbase/curl_adapter.cpp: include utility.h directly and don't
                  redefine UNUSED.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6920&r2=1.6921
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/curl_adapter.cpp?cvsroot=gnash&r1=1.66&r2=1.67
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.246&r2=1.247
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ActionExec.cpp?cvsroot=gnash&r1=1.80&r2=1.81
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ActionExec.h?cvsroot=gnash&r1=1.33&r2=1.34

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6920
retrieving revision 1.6921
diff -u -b -r1.6920 -r1.6921
--- ChangeLog   13 Jun 2008 13:21:04 -0000      1.6920
+++ ChangeLog   13 Jun 2008 13:42:40 -0000      1.6921
@@ -1,3 +1,15 @@
+2008-06-13 Benjamin Wolsey <address@hidden>
+
+       * server/vm/ActionExec.{h,cpp}: rename advanceNextPC to adjustNextPC.
+         Move try block processing into a separate function to make it tidier
+         (if it were obvious what the meaning of the return value was it would
+         be still better). Use switch instead of ifs now that it isn't directly
+         in a while loop. Drop an apparently useless assignment of false to
+         mReturning. Add doxygen comments to header.
+       * server/vm/ASHandlers.cpp: update advanceNextPC to adjustNextPC.
+       * libbase/curl_adapter.cpp: include utility.h directly and don't
+         redefine UNUSED.
+
 2008-06-13 Bastiaan Jacques <address@hidden>
 
        * server/as_object.h: Make use of the typeName function that magically

Index: libbase/curl_adapter.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/curl_adapter.cpp,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- libbase/curl_adapter.cpp    12 Jun 2008 12:01:56 -0000      1.66
+++ libbase/curl_adapter.cpp    13 Jun 2008 13:42:41 -0000      1.67
@@ -22,6 +22,7 @@
 #include "gnashconfig.h"
 #endif
 
+#include "utility.h" // UNUSED macro
 #include "IOChannel.h"
 #include "curl_adapter.h"
 #include "log.h"
@@ -34,10 +35,6 @@
 using gnash::log_debug;
 using gnash::log_error;
 
-#ifndef UNUSED
-# define UNUSED(x) x=x
-#endif
-
 
 #ifndef USE_CURL
 // Stub for warning about access when no libcurl is defined.

Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.246
retrieving revision 1.247
diff -u -b -r1.246 -r1.247
--- server/vm/ASHandlers.cpp    13 Jun 2008 10:33:37 -0000      1.246
+++ server/vm/ASHandlers.cpp    13 Jun 2008 13:42:41 -0000      1.247
@@ -2133,7 +2133,7 @@
     
 
     boost::int16_t offset = thread.code.read_int16(thread.getCurrentPC()+3);
-    thread.advanceNextPC(offset);
+    thread.adjustNextPC(offset);
     // @@ TODO range checks
 }
 
@@ -2553,7 +2553,7 @@
     bool test = env.pop().to_bool();
     if (test)
     {
-        thread.advanceNextPC(offset);
+        thread.adjustNextPC(offset);
 
         if (next_pc > stop_pc)
         {
@@ -4036,7 +4036,7 @@
     func->set_length(code_size);
 
     // Skip the function body (don't interpret it now).
-    thread.advanceNextPC(code_size);
+    thread.adjustNextPC(code_size);
 
     // If we have a name, then save the function in this
     // environment under that name.
@@ -4111,7 +4111,7 @@
     {
         catchName = code.read_string(i);
         i += strlen(catchName) + 1;
-        tryBlock t(i, trySize, catchSize, finallySize, catchName, 
+        TryBlock t(i, trySize, catchSize, finallySize, catchName, 
             env.stack_size());
         thread.pushTryBlock(t);
     }
@@ -4119,7 +4119,7 @@
     {
         catchRegister = code[i];
         ++i;
-        tryBlock t(i, trySize, catchSize, finallySize, catchRegister,
+        TryBlock t(i, trySize, catchSize, finallySize, catchRegister,
             env.stack_size());
         thread.pushTryBlock(t);
     }
@@ -4180,7 +4180,7 @@
             with_obj_val);
         );
         // skip the full block
-        thread.advanceNextPC(block_length);
+        thread.adjustNextPC(block_length);
         return;
     }
 
@@ -4190,7 +4190,7 @@
     if ( ! thread.pushWithEntry(with_stack_entry(with_obj, block_end)) )
     {
         // skip the full block
-        thread.advanceNextPC(block_length);
+        thread.adjustNextPC(block_length);
     }
 
 }
@@ -4247,7 +4247,7 @@
     // next_pc is assumed to point to first action of
     // the function body (one-past the current tag, whic
     // is DefineFunction). We add code_size to it.
-    thread.advanceNextPC(code_size);
+    thread.adjustNextPC(code_size);
 
     // If we have a name, then save the function in this
     // environment under that name.

Index: server/vm/ActionExec.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ActionExec.cpp,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -b -r1.80 -r1.81
--- server/vm/ActionExec.cpp    13 Jun 2008 10:33:37 -0000      1.80
+++ server/vm/ActionExec.cpp    13 Jun 2008 13:42:41 -0000      1.81
@@ -55,7 +55,7 @@
 # define STACK_DUMP_LIMIT 32
 
 // Define to get debugging messages for try / catch
-#define GNASH_DEBUG_TRY 1
+//#define GNASH_DEBUG_TRY 1
 
 #endif
 
@@ -210,207 +210,18 @@
                         // Stop execution (for how long?) if an exception
                         // is still on the stack and there is nothing
                         // left to catch it.
-                        //throw ActionScriptException();
+                        throw ActionScriptException();
                     }
                     break;
                 }
                 
-                // Try / catch / finally rules:
-                //
-                // The actionscript code looks like this:
-                // try { }
-                // catch { }
-                // finally { };
-                //
-                // The catch and finally blocks are both optional.
-                // 1. the catch block is *always* executed, even when no 
exception is thrown.
-                // 2. the finally block is *always* executed, even when an 
uncaught exception
-                //    is thrown.
-                //
-                //    try { throw "fail"; } finally { "trace ("finally"); " };
-                //
-                // 3. execution is interrupted after the last try block if no
-                //    catch is found.
-                //
-                // Implementation:
-                // 
-                // 1. If in a try block, check for a throw.
-                // 2. Continue to execute catch and finally in the present 
block.
-
                 // If we are in a try block, check to see if we have thrown.
-                tryBlock& t = _tryList.back();
-
-                if (t._tryState == tryBlock::TRY_TRY)
-                {
-                    if (env.stack_size() && env.top(0).is_exception())
-                    {
-#ifdef GNASH_DEBUG_TRY
-                        as_value ex = env.top(0);
-                        ex.unflag_exception();
-                        log_debug("TRY block: Encountered exception (%s). Set 
PC to catch.", ex);
-#endif
-                        // We have an exception. Don't execute any more of the 
try
-                        // block and process exception.
-                        pc = t._catchOffset;
-                        t._tryState = tryBlock::TRY_CATCH;
-                      
-                        if (!t._hasName)
-                        {
-                            // Used when exceptions are thrown in functions.
-                            // This is tested in misc-mtasc.all/exception.as
-                            as_value ex = env.pop();
-                            ex.unflag_exception();
-                            
-                            if (isFunction2() && t._registerIndex < 
env.num_local_registers())
-                            {
-#ifdef GNASH_DEBUG_TRY 
-                                log_debug("isFunction2");
-#endif
-                                env.local_register(t._registerIndex) = ex;
-                            }
-                            else if (t._registerIndex < 4)
-                            {
-#ifdef GNASH_DEBUG_TRY 
-                                log_debug("registerIndex < 4");
-#endif
-                                env.global_register(t._registerIndex) = ex;
-                            }
-                        }
-                    }
-                    else
-                    {
-#ifdef GNASH_DEBUG_TRY 
-                        log_debug("TRY block: No exception, continuing as 
normal.");
-#endif
-                        // All code up to the end of the TryBlock should be
-                        // executed.
-                        stop_pc = t._afterTriedOffset;
-                        t._tryState = tryBlock::TRY_FINALLY;
-                    }
-
-
-                }
-                else if (t._tryState == tryBlock::TRY_CATCH)
-                {
-#ifdef GNASH_DEBUG_TRY
-                    log_debug("CATCH: tryBlock name = %s", t._name); 
-#endif               
-                    // Process exceptions. The code in catch { } will 
-                    // be executed whether this block is reached or not.
-                    
-                    if (env.stack_size() && env.top(0).is_exception())
-                    {
-                        // This was thrown in "try". Remove it from
-                        // the stack and remember it so that
-                        // further exceptions can be caught.
-                        t._lastThrow = env.pop();
-#ifdef GNASH_DEBUG_TRY
-                        as_value ex = t._lastThrow;
-                        ex.unflag_exception();
-                        log_debug("CATCH block: top of stack is an exception 
(%s)", ex);
-#endif
-
-                        if (t._hasName && !t._name.empty())
-                        {
-                            // If name isn't empty, it means we have a catch 
block.
-                            // We should set its argument to the exception 
value.
-                            setLocalVariable(t._name, ex);
-                            t._lastThrow = as_value();
-#ifdef GNASH_DEBUG_TRY
-                            log_debug("CATCH block: encountered exception 
(%s). "
-                                      "Assigning to catch arg %d.", ex, 
t._name);
-#endif
-                        }
-                    }
+                TryBlock& t = _tryList.back();
 
-                    // Go to finally
-                    stop_pc = t._finallyOffset;
-                    t._tryState = tryBlock::TRY_FINALLY;
-                }
-                else if (t._tryState == tryBlock::TRY_FINALLY)
-                {
-                    // FINALLY. This may or may not exist, but these actions
-                    // are carried out anyway.
-#ifdef GNASH_DEBUG_TRY
-                    log_debug("FINALLY: tryBlock name = %s", t._name);         
        
-#endif
-                    // If the exception is here, we have thrown in catch.
-                    if (env.stack_size() && env.top(0).is_exception())
-                    {
+                if (! processExceptions(t)) break;
                          
-                        t._lastThrow = env.pop();
-#ifdef GNASH_DEBUG_TRY 
-                        as_value ex = t._lastThrow;
-                        ex.unflag_exception();
-                        log_debug("FINALLY: top of stack is an exception "
-                                  "again (%s). Replaces any previous "
-                                  "uncaught exceptions", ex);
-#endif
-                    }
-                    stop_pc = t._afterTriedOffset;
-                    t._tryState = tryBlock::TRY_END;
-                }
-                else // Everything finished. Check for exceptions.
-                {
-                    // If there's no exception here, we can execute the
-                    // rest of the code. If there is, it will be caught
-                    // by the next TryBlock or stop execution.
-                    if (env.stack_size() && env.top(0).is_exception())
-                    {
-                        // Check for exception handlers straight away
-                        stop_pc = t._afterTriedOffset;
-#ifdef GNASH_DEBUG_TRY
-                        as_value ex = env.top(0);
-                        ex.unflag_exception();
-                        log_debug("END: exception thrown in finally(%s). "
-                                  "Leaving on the stack", ex);
-#endif
-                        _tryList.pop_back();
                         continue;
                     }
-                    else if (t._lastThrow.is_exception())
-                    {
-                        // Check for exception handlers straight away
-                        stop_pc = t._afterTriedOffset;
-#ifdef GNASH_DEBUG_TRY
-                        as_value ex = t._lastThrow;
-                        ex.unflag_exception();
-                        log_debug("END: no new exceptions thrown. Pushing "
-                                  "uncaught one (%s) back", ex);
-#endif
-                        env.push(t._lastThrow);
-                        if ((t._finallyOffset == t._savedEndOffset) && retval)
-                        {
-                            // This was taken over from the previous
-                            // implementation. It happens when there is
-                            // no 'finally' block. It seems to be a bit of
-                            // a hack now, though it may be correct. It
-                            // passes misc-mtasc.all/exceptions.swf.
-                            // TODO: more tests needed.                        
    
-                            *retval = t._lastThrow;
-                        }
-                        _tryList.pop_back();
-                        continue;
-                    }
-#ifdef GNASH_DEBUG_TRY
-                    log_debug("END: no new exceptions thrown. Continuing");
-#endif
-                    // No uncaught exceptions left in TryBlock:
-                    // execute rest of code.
-                    stop_pc = t._savedEndOffset;
-                    
-                    // Finished with this TryBlock.
-                    _tryList.pop_back();
-                    if (mReturning)
-                                       {
-                                               mReturning = false;
-                                               break;
-                                       }
-                    
-                }
-
-                continue; // Walk up the try chain if necessary.
-            } // end of try checking.
 
             // Cleanup any expired "with" blocks.
             while ( ! with_stack.empty() && pc >= with_stack.back().end_pc() )
@@ -576,6 +387,207 @@
 
 }
 
+
+// Try / catch / finally rules:
+//
+// The actionscript code looks like this:
+// try { }
+// catch { }
+// finally { };
+//
+// The catch and finally blocks are both optional.
+// 1. the catch block is *always* executed, even when no exception is thrown.
+// 2. the finally block is *always* executed, even when an exception is thrown.
+// 3. execution is interrupted if there are no catchers left and an exception
+//    is still on the stack.
+//
+bool
+ActionExec::processExceptions(TryBlock& t)
+{
+
+    switch (t._tryState)
+    {
+
+        case TryBlock::TRY_TRY:
+        {
+            if (env.stack_size() && env.top(0).is_exception())
+            {
+#ifdef GNASH_DEBUG_TRY
+                as_value ex = env.top(0);
+                ex.unflag_exception();
+                log_debug("TRY block: Encountered exception (%s). Set PC to 
catch.", ex);
+#endif
+                // We have an exception. Don't execute any more of the try
+                // block and process exception.
+                pc = t._catchOffset;
+                t._tryState = TryBlock::TRY_CATCH;
+              
+                if (!t._hasName)
+                {
+                    // Used when exceptions are thrown in functions.
+                    // Tests in misc-mtasc.all/exception.as
+                    as_value ex = env.pop();
+                    ex.unflag_exception();
+                    
+                    if (isFunction2() && t._registerIndex < 
env.num_local_registers())
+                    {
+#ifdef GNASH_DEBUG_TRY 
+                        log_debug("isFunction2");
+#endif
+                        env.local_register(t._registerIndex) = ex;
+                    }
+                    else if (t._registerIndex < 4)
+                    {
+#ifdef GNASH_DEBUG_TRY 
+                        log_debug("registerIndex < 4");
+#endif
+                        env.global_register(t._registerIndex) = ex;
+                    }
+                }
+            }
+            else
+            {
+#ifdef GNASH_DEBUG_TRY 
+                log_debug("TRY block: No exception, continuing as normal.");
+#endif
+                // All code up to the end of the TryBlock should be
+                // executed.
+                stop_pc = t._afterTriedOffset;
+                t._tryState = TryBlock::TRY_FINALLY;
+            }
+            break;
+        }
+
+
+        case TryBlock::TRY_CATCH:
+        {
+#ifdef GNASH_DEBUG_TRY
+            log_debug("CATCH: TryBlock name = %s", t._name); 
+#endif               
+            // Process exceptions. The code in catch { } will 
+            // be executed whether this block is reached or not.
+            
+            if (env.stack_size() && env.top(0).is_exception())
+            {
+                // This was thrown in "try". Remove it from
+                // the stack and remember it so that
+                // further exceptions can be caught.
+                t._lastThrow = env.pop();
+                as_value ex = t._lastThrow;
+                ex.unflag_exception();
+
+#ifdef GNASH_DEBUG_TRY
+                log_debug("CATCH block: top of stack is an exception (%s)", 
ex);
+#endif
+
+                if (t._hasName && !t._name.empty())
+                {
+                    // If name isn't empty, it means we have a catch block.
+                    // We should set its argument to the exception value.
+                    setLocalVariable(t._name, ex);
+                    t._lastThrow = as_value();
+#ifdef GNASH_DEBUG_TRY
+                    log_debug("CATCH block: encountered exception (%s). "
+                              "Assigning to catch arg %d.", ex, t._name);
+#endif
+                }
+            }
+
+            // Go to finally
+            stop_pc = t._finallyOffset;
+            t._tryState = TryBlock::TRY_FINALLY;
+            break;
+        }
+
+
+        case TryBlock::TRY_FINALLY:
+        {
+            // FINALLY. This may or may not exist, but these actions
+            // are carried out anyway.
+#ifdef GNASH_DEBUG_TRY
+            log_debug("FINALLY: TryBlock name = %s", t._name);                 
+#endif
+            // If the exception is here, we have thrown in catch.
+            if (env.stack_size() && env.top(0).is_exception())
+            {
+                 
+                t._lastThrow = env.pop();
+#ifdef GNASH_DEBUG_TRY 
+                as_value ex = t._lastThrow;
+                ex.unflag_exception();
+                log_debug("FINALLY: top of stack is an exception "
+                          "again (%s). Replaces any previous "
+                          "uncaught exceptions", ex);
+#endif
+            }
+            stop_pc = t._afterTriedOffset;
+            t._tryState = TryBlock::TRY_END;
+            break;
+        }
+
+        case TryBlock::TRY_END:
+        {
+            // If there's no exception here, we can execute the
+            // rest of the code. If there is, it will be caught
+            // by the next TryBlock or stop execution.
+            if (env.stack_size() && env.top(0).is_exception())
+            {
+                // Check for exception handlers straight away
+                stop_pc = t._afterTriedOffset;
+#ifdef GNASH_DEBUG_TRY
+                as_value ex = env.top(0);
+                ex.unflag_exception();
+                log_debug("END: exception thrown in finally(%s). "
+                          "Leaving on the stack", ex);
+#endif
+                _tryList.pop_back();
+                return true;
+            }
+            else if (t._lastThrow.is_exception())
+            {
+                // Check for exception handlers straight away
+                stop_pc = t._afterTriedOffset;
+#ifdef GNASH_DEBUG_TRY
+                as_value ex = t._lastThrow;
+                ex.unflag_exception();
+                log_debug("END: no new exceptions thrown. Pushing "
+                          "uncaught one (%s) back", ex);
+#endif
+                env.push(t._lastThrow);
+                if ((t._finallyOffset == t._savedEndOffset) && retval)
+                {
+                    // This was taken over from the previous
+                    // implementation. It happens when there is
+                    // no 'finally' block. It seems to be a bit of
+                    // a hack now, though it may be correct. It
+                    // passes misc-mtasc.all/exceptions.swf.
+                    // TODO: more tests needed.                            
+                    *retval = t._lastThrow;
+                }
+                _tryList.pop_back();
+                return true;
+            }
+#ifdef GNASH_DEBUG_TRY
+            log_debug("END: no new exceptions thrown. Continuing");
+#endif
+            // No uncaught exceptions left in TryBlock:
+            // execute rest of code.
+            stop_pc = t._savedEndOffset;
+            
+            // Finished with this TryBlock.
+            _tryList.pop_back();
+            
+            // Will break of of action execution.
+            if (mReturning) return false;
+                   
+            break;
+        }
+
+
+    } // end switch
+    return true;
+}
+
 /*private*/
 void
 ActionExec::cleanupAfterRun(bool expectInconsistencies)
@@ -767,7 +779,7 @@
 }
 
 void
-ActionExec::pushTryBlock(tryBlock& t)
+ActionExec::pushTryBlock(TryBlock& t)
 {
     // The current block should end at the end of the try block.
     t._savedEndOffset = stop_pc;

Index: server/vm/ActionExec.h
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ActionExec.h,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- server/vm/ActionExec.h      12 Jun 2008 12:44:59 -0000      1.33
+++ server/vm/ActionExec.h      13 Jun 2008 13:42:41 -0000      1.34
@@ -35,7 +35,7 @@
 
 namespace gnash {
 
-class tryBlock
+class TryBlock
 {
 public:
        friend class ActionExec;
@@ -48,7 +48,7 @@
                TRY_END // Finished with finally
        };
 
-    tryBlock(size_t cur_off, size_t try_size, size_t catch_size,
+    TryBlock(size_t cur_off, size_t try_size, size_t catch_size,
                size_t finally_size, std::string catchName, int /*stack_depth*/)
                :
                _catchOffset(cur_off + try_size),
@@ -57,11 +57,11 @@
                _hasName(true),
                _name(catchName),
                _registerIndex(),
-               _tryState(tryBlock::TRY_TRY),
+               _tryState(TryBlock::TRY_TRY),
                _lastThrow()
        {/**/}
 
-       tryBlock(size_t cur_off, size_t try_size, size_t catch_size,
+       TryBlock(size_t cur_off, size_t try_size, size_t catch_size,
                size_t finally_size, boost::uint8_t register_index, int /* 
stack_depth */)
                :
                _catchOffset(cur_off + try_size),
@@ -70,7 +70,7 @@
                _hasName(false),
                _name(),
                _registerIndex(register_index),
-               _tryState(tryBlock::TRY_TRY),
+               _tryState(TryBlock::TRY_TRY),
                _lastThrow()
        {/**/}
 
@@ -117,6 +117,22 @@
                return with_stack;
        }
 
+    /// Processes the current try - catch - finally block
+    //
+    /// This function is called after each stage of a
+    /// try/catch/finally block. It ensures it is called
+    /// after each stage by setting stop_pc to the appropriate
+    /// number. If an exception is on the stack at any stage,
+    /// it takes the appropriate action (catch, set register
+    /// values, return, or leave it on the stack). Return
+    /// false means that the action processing loop should be
+    /// interrupted.
+    //
+    /// @return whether to continue executing the buffer
+    //
+    /// @param t the try block to process.
+    
+    bool processExceptions(TryBlock& t);
 
        /// Run after a complete run, or after an run interrupted by 
        /// a bail-out exception (ActionLimitException, for example)
@@ -189,7 +205,7 @@
 
        character* _original_target;
 
-       std::list<tryBlock> _tryList;
+       std::list<TryBlock> _tryList;
 
        bool mReturning;
 
@@ -231,7 +247,7 @@
        /// \brief
        /// Use this to push a try block.
        /// t will be copied
-       void pushTryBlock(tryBlock& t);
+       void pushTryBlock(TryBlock& t);
 
        /// \brief
        /// Set the return value.
@@ -277,7 +293,7 @@
        ActionExec(const swf_function& func, as_environment& newEnv, as_value* 
nRetVal, as_object* this_ptr);
 
        /// Is this execution thread a function2 call ?
-       bool isFunction2() { return _function_var==2; }
+       bool isFunction2() { return _function_var == 2; }
 
        /// Is this execution thread a function call ?
        bool isFunction() { return _function_var!=0; }
@@ -442,7 +458,7 @@
        
        void skipRemainingBuffer() { next_pc = stop_pc; }
        
-       void advanceNextPC(int offset) { next_pc += offset; }
+       void adjustNextPC(int offset) { next_pc += offset; }
 
 // This is just a temporary mess for initialization order
 // while I sort out accessors.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]