]> gitweb.factorcode.org Git - factor.git/commitdiff
vm: don't suffer null return addresses
authorJoe Groff <arcata@gmail.com>
Wed, 30 Nov 2011 20:55:57 +0000 (12:55 -0800)
committerJoe Groff <arcata@gmail.com>
Wed, 14 Dec 2011 17:56:46 +0000 (09:56 -0800)
vm/callstack.cpp

index 58e1a364d748d47d2ce48d2e39765f0706e86c01..9f2dc01cfe8b1f63095e27a515e9225ac2116144 100755 (executable)
@@ -96,19 +96,14 @@ cell factor_vm::frame_offset(stack_frame *frame)
 {
        char *entry_point = (char *)frame_code(frame)->entry_point();
        char *return_address = (char *)FRAME_RETURN_ADDRESS(frame,this);
-       if(return_address)
-               return return_address - entry_point;
-       else
-               return (cell)-1;
+       FACTOR_ASSERT(return_address != 0);
+       return return_address - entry_point;
 }
 
 void factor_vm::set_frame_offset(stack_frame *frame, cell offset)
 {
        char *entry_point = (char *)frame_code(frame)->entry_point();
-       if(offset == (cell)-1)
-               FRAME_RETURN_ADDRESS(frame,this) = NULL;
-       else
-               FRAME_RETURN_ADDRESS(frame,this) = entry_point + offset;
+       FRAME_RETURN_ADDRESS(frame,this) = entry_point + offset;
 }
 
 cell factor_vm::frame_scan(stack_frame *frame)