diff --git a/basis/unix/ffi/bsd/bsd.factor b/basis/unix/ffi/bsd/bsd.factor index 3b3052af23..388fd5a692 100644 --- a/basis/unix/ffi/bsd/bsd.factor +++ b/basis/unix/ffi/bsd/bsd.factor @@ -69,12 +69,10 @@ CONSTANT: SOCK_RAW 3 CONSTANT: AF_UNSPEC 0 CONSTANT: AF_UNIX 1 CONSTANT: AF_INET 2 -CONSTANT: AF_INET6 30 ALIAS: PF_UNSPEC AF_UNSPEC ALIAS: PF_UNIX AF_UNIX ALIAS: PF_INET AF_INET -ALIAS: PF_INET6 AF_INET6 CONSTANT: IPPROTO_TCP 6 CONSTANT: IPPROTO_UDP 17 diff --git a/basis/unix/ffi/bsd/freebsd/freebsd.factor b/basis/unix/ffi/bsd/freebsd/freebsd.factor index 112758a3e8..cb45cf2b20 100644 --- a/basis/unix/ffi/bsd/freebsd/freebsd.factor +++ b/basis/unix/ffi/bsd/freebsd/freebsd.factor @@ -1,6 +1,9 @@ USING: alien.c-types alien.syntax classes.struct unix.types ; IN: unix.ffi +CONSTANT: AF_INET6 28 +ALIAS: PF_INET6 AF_INET6 + CONSTANT: FD_SETSIZE 1024 STRUCT: addrinfo diff --git a/basis/unix/ffi/bsd/openbsd/openbsd.factor b/basis/unix/ffi/bsd/openbsd/openbsd.factor index 1f4eddef66..dba7ddd3cd 100644 --- a/basis/unix/ffi/bsd/openbsd/openbsd.factor +++ b/basis/unix/ffi/bsd/openbsd/openbsd.factor @@ -1,6 +1,9 @@ USING: alien.c-types alien.syntax classes.struct unix.types ; IN: unix.ffi +CONSTANT: AF_INET6 24 +ALIAS: PF_INET6 AF_INET6 + CONSTANT: FD_SETSIZE 1024 STRUCT: addrinfo diff --git a/vm/gc.cpp b/vm/gc.cpp index 0de3dac91f..1bb339a70a 100755 --- a/vm/gc.cpp +++ b/vm/gc.cpp @@ -230,8 +230,8 @@ struct call_frame_scrubber { gc_info *info = compiled->block_gc_info(); assert(return_address < compiled->size()); - int index = info->return_address_index(return_address); - if(index != -1) + cell index = info->return_address_index(return_address); + if(index != (cell)-1) ctx->scrub_stacks(info,index); } }; diff --git a/vm/gc_info.cpp b/vm/gc_info.cpp index 7c727aac0d..a693fc5455 100644 --- a/vm/gc_info.cpp +++ b/vm/gc_info.cpp @@ -13,7 +13,7 @@ cell gc_info::return_address_index(cell return_address) return i; } - return gc_info_missing_value; + return (cell)-1; } } diff --git a/vm/gc_info.hpp b/vm/gc_info.hpp index eee7b1a8e8..9bff88b9b2 100644 --- a/vm/gc_info.hpp +++ b/vm/gc_info.hpp @@ -1,8 +1,6 @@ namespace factor { -const u32 gc_info_missing_value = (u32)-1; - struct gc_info { u32 scrub_d_count; u32 scrub_r_count; @@ -58,7 +56,7 @@ struct gc_info { + index * gc_root_count; } - cell lookup_base_pointer(cell index, cell derived_root) + u32 lookup_base_pointer(cell index, cell derived_root) { return base_pointer_map()[index * derived_root_count + derived_root]; } diff --git a/vm/slot_visitor.hpp b/vm/slot_visitor.hpp index 303fc37544..b2dd40e582 100755 --- a/vm/slot_visitor.hpp +++ b/vm/slot_visitor.hpp @@ -292,8 +292,8 @@ struct call_frame_slot_visitor { gc_info *info = compiled->block_gc_info(); assert(return_address < compiled->size()); - u32 callsite = info->return_address_index(return_address); - if(callsite == gc_info_missing_value) + cell callsite = info->return_address_index(return_address); + if(callsite == (cell)-1) return; #ifdef DEBUG_GC_MAPS @@ -305,8 +305,8 @@ struct call_frame_slot_visitor { /* Subtract old value of base pointer from every derived pointer. */ for(cell spill_slot = 0; spill_slot < info->derived_root_count; spill_slot++) { - cell base_pointer = info->lookup_base_pointer(callsite, spill_slot); - if(base_pointer != gc_info_missing_value) + u32 base_pointer = info->lookup_base_pointer(callsite, spill_slot); + if(base_pointer != (u32)-1) { #ifdef DEBUG_GC_MAPS std::cout << "visiting derived root " << spill_slot @@ -334,8 +334,8 @@ struct call_frame_slot_visitor { /* Add the base pointers to obtain new derived pointer values. */ for(cell spill_slot = 0; spill_slot < info->derived_root_count; spill_slot++) { - cell base_pointer = info->lookup_base_pointer(callsite, spill_slot); - if(base_pointer != gc_info_missing_value) + u32 base_pointer = info->lookup_base_pointer(callsite, spill_slot); + if(base_pointer != (u32)-1) stack_pointer[spill_slot] += stack_pointer[base_pointer]; } }