Ticket #886: tt_886_win.patch

File tt_886_win.patch, 2.7 KB (added by jimmy, 5 years ago)
  • src/io/socket_win32.c

     
    7777Parrot_io_socket_win32(PARROT_INTERP, ARGIN(PMC * s), int fam, int type, int proto) 
    7878{ 
    7979    ASSERT_ARGS(Parrot_io_socket_win32) 
    80     int sock, i = 1; 
    81     sock = socket(fam, type, proto); 
     80    int       i    = 1; 
     81    const int sock = socket(fam, type, proto); 
    8282    if (sock >= 0) { 
    8383        setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char*)&i, sizeof (i)); 
    8484        Parrot_io_set_os_handle(interp, s, sock); 
     
    443443Parrot_io_sockaddr_in(PARROT_INTERP, ARGIN(STRING *addr), INTVAL port) 
    444444{ 
    445445    ASSERT_ARGS(Parrot_io_sockaddr_in) 
    446     PMC * sockaddr; 
    447     char * s; 
    448  
    449     s = Parrot_str_to_cstring(interp, addr); 
     446    PMC  * sockaddr; 
     447    char * const s = Parrot_str_to_cstring(interp, addr); 
    450448    sockaddr = pmc_new(interp, enum_class_Sockaddr); 
    451449    get_sockaddr_in(interp, sockaddr, s, port); 
    452450    Parrot_str_free_cstring(s); 
  • src/io/win32.c

     
    701701            NULL, NULL, TRUE, 0, 
    702702            NULL, NULL, &start, &procinfo) == 0) 
    703703        goto fail; 
    704     Parrot_str_free_cstring(cmd); 
    705     cmd = NULL; 
    706704    if (f_read) { 
    707705        Parrot_io_set_os_handle(interp, io, hread); 
    708706        CloseHandle(hwrite); 
     
    711709        Parrot_io_set_os_handle(interp, io, hwrite); 
    712710        CloseHandle(hread); 
    713711    } 
     712 
     713    Parrot_str_free_cstring(cmd);  
    714714    CloseHandle(procinfo.hThread); 
    715715    VTABLE_set_integer_keyed_int(interp, io, 0, (INTVAL)procinfo.hProcess); 
    716716    return io; 
  • src/pmc/string.pmc

     
    5252 
    5353    VTABLE void mark() { 
    5454        STRING *str_val; 
     55 
     56        if (!PMC_data(SELF)) 
     57            return; 
     58 
    5559        GET_ATTR_str_val(INTERP, SELF, str_val); 
    5660        Parrot_gc_mark_STRING_alive(INTERP, str_val); 
    5761    } 
     
    202206 
    203207        /* Only allow constant PMCs to embed constant strings */ 
    204208        if (PObj_constant_TEST(SELF) && !PObj_constant_TEST(value)) { 
    205             char *copy = Parrot_str_to_cstring(INTERP, value); 
    206             value      = Parrot_str_new_init(INTERP, copy, strlen(copy), 
     209            char * const copy = Parrot_str_to_cstring(INTERP, value); 
     210            value             = Parrot_str_new_init(INTERP, copy, strlen(copy), 
    207211                PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET, 
    208212                PObj_constant_FLAG); 
    209213            Parrot_str_free_cstring(copy);