ci: remove some tests from skip_with_werror in `v test-self`
parent
980521824f
commit
3e297bced4
|
@ -32,24 +32,7 @@ const (
|
|||
skip_with_werror = [
|
||||
'vlib/clipboard/clipboard_test.v',
|
||||
'vlib/eventbus/eventbus_test.v',
|
||||
'vlib/gx/color_test.v',
|
||||
'vlib/json/json_test.v',
|
||||
'vlib/math/big/big_test.v',
|
||||
'vlib/net/ftp/ftp_test.v',
|
||||
'vlib/net/http/cookie_test.v',
|
||||
'vlib/net/http/http_httpbin_test.v',
|
||||
'vlib/net/http/header_test.v',
|
||||
'vlib/net/tcp_test.v',
|
||||
'vlib/net/tcp_simple_client_server_test.v',
|
||||
'vlib/net/smtp/smtp_test.v',
|
||||
'vlib/net/udp_test.v',
|
||||
'vlib/net/unix/unix_test.v',
|
||||
'vlib/net/http/http_test.v',
|
||||
'vlib/net/http/status_test.v',
|
||||
'vlib/orm/orm_test.v',
|
||||
'vlib/os/os_test.v',
|
||||
'vlib/rand/mt19937/mt19937_test.v',
|
||||
'vlib/readline/readline_test.v',
|
||||
'vlib/regex/regex_test.v',
|
||||
'vlib/sqlite/sqlite_test.v',
|
||||
'vlib/strconv/atof_test.v',
|
||||
|
|
|
@ -51,7 +51,7 @@ pub fn (s &C.FONScontext) reset_atlas(width int, height int) int {
|
|||
|
||||
// Add fonts
|
||||
[inline]
|
||||
pub fn (s &C.FONScontext) get_font_by_name(name byteptr) int {
|
||||
pub fn (s &C.FONScontext) get_font_by_name(name &char) int {
|
||||
return C.fonsGetFontByName(s, name)
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,7 @@ pub fn (s &C.FONScontext) add_fallback_font(base int, fallback int) int {
|
|||
}
|
||||
|
||||
[inline]
|
||||
pub fn (s &C.FONScontext) add_font_mem(name byteptr, data byteptr, data_size int, free_data int) int {
|
||||
pub fn (s &C.FONScontext) add_font_mem(name &char, data &byte, data_size int, free_data int) int {
|
||||
return C.fonsAddFontMem(s, name, data, data_size, free_data)
|
||||
}
|
||||
|
||||
|
@ -114,13 +114,13 @@ pub fn (s &C.FONScontext) set_font(font int) {
|
|||
|
||||
// Draw text
|
||||
[inline]
|
||||
pub fn (s &C.FONScontext) draw_text(x f32, y f32, str byteptr, end byteptr) f32 {
|
||||
pub fn (s &C.FONScontext) draw_text(x f32, y f32, str &char, end &char) f32 {
|
||||
return C.fonsDrawText(s, x, y, str, end)
|
||||
}
|
||||
|
||||
// Measure text
|
||||
[inline]
|
||||
pub fn (s &C.FONScontext) text_bounds(x f32, y f32, str byteptr, end byteptr, bounds &f32) f32 {
|
||||
pub fn (s &C.FONScontext) text_bounds(x f32, y f32, str &char, end &char, bounds &f32) f32 {
|
||||
return C.fonsTextBounds(s, x, y, str, end, bounds)
|
||||
}
|
||||
|
||||
|
@ -136,7 +136,7 @@ pub fn (s &C.FONScontext) vert_metrics(ascender &f32, descender &f32, lineh &f32
|
|||
|
||||
// Text iterator
|
||||
[inline]
|
||||
pub fn (s &C.FONScontext) text_iter_init(iter &C.FONStextIter, x f32, y f32, str byteptr, end byteptr) int {
|
||||
pub fn (s &C.FONScontext) text_iter_init(iter &C.FONStextIter, x f32, y f32, str &char, end &char) int {
|
||||
return C.fonsTextIterInit(s, iter, x, y, str, end)
|
||||
}
|
||||
|
||||
|
@ -147,8 +147,8 @@ pub fn (s &C.FONScontext) text_iter_next(iter &C.FONStextIter, quad &C.FONSquad)
|
|||
|
||||
// Pull texture changes
|
||||
[inline]
|
||||
pub fn (s &C.FONScontext) get_texture_data(width &int, height &int) byteptr {
|
||||
return C.fonsGetTextureData(s, width, height)
|
||||
pub fn (s &C.FONScontext) get_texture_data(width &int, height &int) &byte {
|
||||
return &byte(C.fonsGetTextureData(s, width, height))
|
||||
}
|
||||
|
||||
[inline]
|
||||
|
|
|
@ -4,18 +4,21 @@ module fontstash
|
|||
fn C.fonsCreateInternal(params &C.FONSparams) &C.FONScontext
|
||||
fn C.fonsDeleteInternal(s &C.FONScontext)
|
||||
|
||||
fn C.fonsSetErrorCallback(s &C.FONScontext, callback fn(uptr voidptr, error int, val int), uptr voidptr)
|
||||
fn C.fonsSetErrorCallback(s &C.FONScontext, callback fn (voidptr, int, int), uptr voidptr)
|
||||
|
||||
// Returns current atlas size.
|
||||
fn C.fonsGetAtlasSize(s &C.FONScontext, width &int, height &int)
|
||||
|
||||
// Expands the atlas size.
|
||||
fn C.fonsExpandAtlas(s &C.FONScontext, width int, height int) int
|
||||
|
||||
// Resets the whole stash.
|
||||
fn C.fonsResetAtlas(s &C.FONScontext, width int, height int) int
|
||||
|
||||
// Add fonts
|
||||
fn C.fonsGetFontByName(s &C.FONScontext, name byteptr) int
|
||||
fn C.fonsGetFontByName(s &C.FONScontext, name &char) int
|
||||
fn C.fonsAddFallbackFont(s &C.FONScontext, base int, fallback int) int
|
||||
fn C.fonsAddFontMem(s &C.FONScontext, name byteptr, data byteptr, dataSize int, freeData int) int
|
||||
fn C.fonsAddFontMem(s &C.FONScontext, name &char, data &byte, dataSize int, freeData int) int
|
||||
|
||||
// State handling
|
||||
fn C.fonsPushState(s &C.FONScontext)
|
||||
|
@ -31,19 +34,19 @@ fn C.fonsSetAlign(s &C.FONScontext, align int)
|
|||
fn C.fonsSetFont(s &C.FONScontext, font int)
|
||||
|
||||
// Draw text
|
||||
fn C.fonsDrawText(s &C.FONScontext, x f32, y f32, str byteptr, end byteptr) f32
|
||||
fn C.fonsDrawText(s &C.FONScontext, x f32, y f32, str &char, end &char) f32
|
||||
|
||||
// Measure text
|
||||
fn C.fonsTextBounds(s &C.FONScontext, x f32, y f32, str byteptr, end byteptr, bounds &f32) f32
|
||||
fn C.fonsTextBounds(s &C.FONScontext, x f32, y f32, str &char, end &char, bounds &f32) f32
|
||||
fn C.fonsLineBounds(s &C.FONScontext, y f32, miny &f32, maxy &f32)
|
||||
fn C.fonsVertMetrics(s &C.FONScontext, ascender &f32, descender &f32, lineh &f32)
|
||||
|
||||
// Text iterator
|
||||
fn C.fonsTextIterInit(s &C.FONScontext, iter &C.FONStextIter, x f32, y f32, str byteptr, end byteptr) int
|
||||
fn C.fonsTextIterInit(s &C.FONScontext, iter &C.FONStextIter, x f32, y f32, str &char, end &char) int
|
||||
fn C.fonsTextIterNext(s &C.FONScontext, iter &C.FONStextIter, quad &C.FONSquad) int
|
||||
|
||||
// Pull texture changes
|
||||
fn C.fonsGetTextureData(s &C.FONScontext, width &int, height &int) byteptr
|
||||
fn C.fonsGetTextureData(s &C.FONScontext, width &int, height &int) &char
|
||||
fn C.fonsValidateTexture(s &C.FONScontext, dirty &int) int
|
||||
|
||||
// Draws the stash texture for debugging
|
||||
|
|
|
@ -11,7 +11,7 @@ module json
|
|||
struct C.cJSON {
|
||||
valueint int
|
||||
valuedouble f32
|
||||
valuestring charptr
|
||||
valuestring &char
|
||||
}
|
||||
|
||||
fn C.cJSON_IsTrue(&C.cJSON) bool
|
||||
|
@ -20,13 +20,13 @@ fn C.cJSON_CreateNumber(int) &C.cJSON
|
|||
|
||||
fn C.cJSON_CreateBool(bool) &C.cJSON
|
||||
|
||||
fn C.cJSON_CreateString(charptr) &C.cJSON
|
||||
fn C.cJSON_CreateString(&char) &C.cJSON
|
||||
|
||||
fn C.cJSON_Parse(charptr) &C.cJSON
|
||||
fn C.cJSON_Parse(&char) &C.cJSON
|
||||
|
||||
fn C.cJSON_PrintUnformatted(&C.cJSON) charptr
|
||||
fn C.cJSON_PrintUnformatted(&C.cJSON) &char
|
||||
|
||||
fn C.cJSON_Print(&C.cJSON) charptr
|
||||
fn C.cJSON_Print(&C.cJSON) &char
|
||||
|
||||
pub fn decode(typ voidptr, s string) ?voidptr {
|
||||
// compiler implementation
|
||||
|
@ -122,7 +122,7 @@ fn decode_string(root &C.cJSON) string {
|
|||
}
|
||||
// println('decode string valuestring="$root.valuestring"')
|
||||
// return tos(root.valuestring, _strlen(root.valuestring))
|
||||
return unsafe { tos_clone(byteptr(root.valuestring)) } // , _strlen(root.valuestring))
|
||||
return unsafe { tos_clone(&byte(root.valuestring)) } // , _strlen(root.valuestring))
|
||||
}
|
||||
|
||||
fn decode_bool(root &C.cJSON) bool {
|
||||
|
@ -190,12 +190,12 @@ fn json_parse(s string) &C.cJSON {
|
|||
// json_string := json_print(encode_User(user))
|
||||
fn json_print(json &C.cJSON) string {
|
||||
s := C.cJSON_PrintUnformatted(json)
|
||||
return unsafe { tos(byteptr(s), C.strlen(&char(s))) }
|
||||
return unsafe { tos(&byte(s), C.strlen(&char(s))) }
|
||||
}
|
||||
|
||||
fn json_print_pretty(json &C.cJSON) string {
|
||||
s := C.cJSON_Print(json)
|
||||
return unsafe { tos(byteptr(s), C.strlen(&char(s))) }
|
||||
return unsafe { tos(&byte(s), C.strlen(&char(s))) }
|
||||
}
|
||||
|
||||
// / cjson wrappers
|
||||
|
|
|
@ -19,9 +19,9 @@ fn C.bignum_from_int(n &Number, i u64)
|
|||
|
||||
fn C.bignum_to_int(n &Number) int
|
||||
|
||||
fn C.bignum_from_string(n &Number, s &byte, nbytes int)
|
||||
fn C.bignum_from_string(n &Number, s &char, nbytes int)
|
||||
|
||||
fn C.bignum_to_string(n &Number, s &byte, maxsize int)
|
||||
fn C.bignum_to_string(n &Number, s &char, maxsize int)
|
||||
|
||||
// c = a + b
|
||||
fn C.bignum_add(a &Number, b &Number, c &Number)
|
||||
|
@ -104,7 +104,7 @@ pub fn from_hex_string(input string) Number {
|
|||
padding := '0'.repeat((8 - s.len % 8) % 8)
|
||||
s = padding + s
|
||||
n := Number{}
|
||||
C.bignum_from_string(&n, s.str, s.len)
|
||||
C.bignum_from_string(&n, &char(s.str), s.len)
|
||||
return n
|
||||
}
|
||||
|
||||
|
@ -151,7 +151,7 @@ pub fn (n Number) hexstr() string {
|
|||
unsafe {
|
||||
bp := &buf[0]
|
||||
// NB: C.bignum_to_string(), returns the HEXADECIMAL representation of the bignum n
|
||||
C.bignum_to_string(&n, bp, 8192)
|
||||
C.bignum_to_string(&n, &char(bp), 8192)
|
||||
s = tos_clone(bp)
|
||||
}
|
||||
if s.len == 0 {
|
||||
|
|
|
@ -115,7 +115,7 @@ fn test_str() {
|
|||
assert big.from_u64(1024).str() == '1024'
|
||||
assert big.from_u64(4294967295).str() == '4294967295'
|
||||
assert big.from_u64(4398046511104).str() == '4398046511104'
|
||||
assert big.from_int(4294967295).str() == '18446744073709551615'
|
||||
assert big.from_int(int(4294967295)).str() == '18446744073709551615'
|
||||
assert big.from_int(-1).str() == '18446744073709551615'
|
||||
assert big.from_hex_string('e'.repeat(80)).str() == '1993587900192849410235353592424915306962524220866209251950572167300738410728597846688097947807470'
|
||||
}
|
||||
|
|
|
@ -72,9 +72,10 @@ pub fn resolve_addr(addr string, family SocketFamily, typ SocketType) ?Addr {
|
|||
|
||||
// This might look silly but is recommended by MSDN
|
||||
$if windows {
|
||||
socket_error(0 - C.getaddrinfo(address.str, sport.str, &hints, &info)) ?
|
||||
socket_error(0 - C.getaddrinfo(&char(address.str), &char(sport.str), &hints,
|
||||
&info)) ?
|
||||
} $else {
|
||||
x := C.getaddrinfo(address.str, sport.str, &hints, &info)
|
||||
x := C.getaddrinfo(&char(address.str), &char(sport.str), &hints, &info)
|
||||
wrap_error(x) ?
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ const (
|
|||
|
||||
fn (req &Request) ssl_do(port int, method Method, host_name string, path string) ?Response {
|
||||
// ssl_method := C.SSLv23_method()
|
||||
ctx := C.SSL_CTX_new(C.TLSv1_2_method())
|
||||
ctx := C.SSL_CTX_new(C.TLS_method())
|
||||
C.SSL_CTX_set_verify_depth(ctx, 4)
|
||||
flags := C.SSL_OP_NO_SSLv2 | C.SSL_OP_NO_SSLv3 | C.SSL_OP_NO_COMPRESSION
|
||||
C.SSL_CTX_set_options(ctx, flags)
|
||||
|
@ -23,7 +23,7 @@ fn (req &Request) ssl_do(port int, method Method, host_name string, path string)
|
|||
ssl := &openssl.SSL(0)
|
||||
C.BIO_get_ssl(web, &ssl)
|
||||
preferred_ciphers := 'HIGH:!aNULL:!kRSA:!PSK:!SRP:!MD5:!RC4'
|
||||
res = C.SSL_set_cipher_list(voidptr(ssl), preferred_ciphers.str)
|
||||
res = C.SSL_set_cipher_list(voidptr(ssl), &char(preferred_ciphers.str))
|
||||
if res != 1 {
|
||||
println('http: openssl: cipher failed')
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ fn (req &Request) ssl_do(port int, method Method, host_name string, path string)
|
|||
eprintln('> $req_headers')
|
||||
}
|
||||
// println(req_headers)
|
||||
C.BIO_puts(web, req_headers.str)
|
||||
C.BIO_puts(web, &char(req_headers.str))
|
||||
mut content := strings.new_builder(100)
|
||||
mut buff := [bufsize]byte{}
|
||||
bp := &buff[0]
|
||||
|
|
|
@ -159,7 +159,7 @@ pub fn (c &TcpConn) peer_addr() ?Addr {
|
|||
}
|
||||
|
||||
pub fn (c &TcpConn) peer_ip() ?string {
|
||||
buf := [44]byte{}
|
||||
buf := [44]char{}
|
||||
peeraddr := C.sockaddr_in{}
|
||||
speeraddr := sizeof(peeraddr)
|
||||
socket_error(C.getpeername(c.sock.handle, unsafe { &C.sockaddr(&peeraddr) }, &speeraddr)) ?
|
||||
|
|
|
@ -41,7 +41,8 @@ fn error_code() int {
|
|||
}
|
||||
|
||||
fn new_stream_socket() ?StreamSocket {
|
||||
sockfd := net.socket_error(C.socket(net.SocketFamily.unix, net.SocketType.stream, 0)) ?
|
||||
sockfd := net.socket_error(C.socket(net.SocketFamily.unix, net.SocketType.stream,
|
||||
0)) ?
|
||||
mut s := StreamSocket{
|
||||
handle: sockfd
|
||||
}
|
||||
|
@ -64,7 +65,7 @@ fn (mut s StreamSocket) connect(a string) ? {
|
|||
mut addr := C.sockaddr_un{}
|
||||
unsafe { C.memset(&addr, 0, sizeof(C.sockaddr_un)) }
|
||||
addr.sun_family = C.AF_UNIX
|
||||
unsafe { C.strncpy(&addr.sun_path[0], a.str, max_sun_path) }
|
||||
unsafe { C.strncpy(&addr.sun_path[0], &char(a.str), max_sun_path) }
|
||||
size := C.SUN_LEN(&addr)
|
||||
sockaddr := unsafe { &C.sockaddr(&addr) }
|
||||
res := C.connect(s.handle, sockaddr, size)
|
||||
|
@ -97,7 +98,7 @@ pub fn listen_stream(sock string) ?&StreamListener {
|
|||
mut addr := C.sockaddr_un{}
|
||||
unsafe { C.memset(&addr, 0, sizeof(C.sockaddr_un)) }
|
||||
addr.sun_family = C.AF_UNIX
|
||||
unsafe { C.strncpy(&addr.sun_path[0], sock.str, max_sun_path) }
|
||||
unsafe { C.strncpy(&addr.sun_path[0], &char(sock.str), max_sun_path) }
|
||||
size := C.SUN_LEN(&addr)
|
||||
sockaddr := unsafe { &C.sockaddr(&addr) }
|
||||
net.socket_error(C.bind(s.handle, sockaddr, size)) ?
|
||||
|
@ -170,14 +171,14 @@ pub fn (mut c StreamConn) close() ? {
|
|||
}
|
||||
|
||||
// write_ptr blocks and attempts to write all data
|
||||
pub fn (mut c StreamConn) write_ptr(b byteptr, len int) ?int {
|
||||
pub fn (mut c StreamConn) write_ptr(b &byte, len int) ?int {
|
||||
$if trace_unix ? {
|
||||
eprintln(
|
||||
'>>> StreamConn.write_ptr | c.sock.handle: $c.sock.handle | b: ${ptr_str(b)} len: $len |\n' +
|
||||
unsafe { b.vstring_with_len(len) })
|
||||
}
|
||||
unsafe {
|
||||
mut ptr_base := byteptr(b)
|
||||
mut ptr_base := &byte(b)
|
||||
mut total_sent := 0
|
||||
for total_sent < len {
|
||||
ptr := ptr_base + total_sent
|
||||
|
@ -214,7 +215,7 @@ pub fn (mut c StreamConn) write_string(s string) ?int {
|
|||
return c.write_ptr(s.str, s.len)
|
||||
}
|
||||
|
||||
pub fn (mut c StreamConn) read_ptr(buf_ptr byteptr, len int) ?int {
|
||||
pub fn (mut c StreamConn) read_ptr(buf_ptr &byte, len int) ?int {
|
||||
mut res := wrap_read_result(C.recv(c.sock.handle, buf_ptr, len, 0)) ?
|
||||
$if trace_unix ? {
|
||||
eprintln('<<< StreamConn.read_ptr | c.sock.handle: $c.sock.handle | buf_ptr: ${ptr_str(buf_ptr)} len: $len | res: $res')
|
||||
|
|
|
@ -17,7 +17,7 @@ const (
|
|||
fn mt19937_basic_test() {
|
||||
mut rng := mt19937.MT19937RNG{}
|
||||
rng.seed([u32(0xdeadbeef)])
|
||||
target := [956529277, 3842322136, 3319553134, 1843186657, 2704993644, 595827513, 938518626,
|
||||
target := [u32(956529277), 3842322136, 3319553134, 1843186657, 2704993644, 595827513, 938518626,
|
||||
1676224337, 3221315650, 1819026461]
|
||||
for i := 0; i < 10; i++ {
|
||||
assert target[i] == rng.u32()
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
module readline
|
||||
|
||||
// Termios stores the terminal options on Linux.
|
||||
struct C.termios {}
|
||||
|
||||
struct Termios {
|
||||
mut:
|
||||
c_iflag int
|
||||
|
|
|
@ -13,9 +13,9 @@ import os
|
|||
#include <termios.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
fn C.tcgetattr(fd int, termios_p &Termios) int
|
||||
fn C.tcgetattr(fd int, termios_p &C.termios) int
|
||||
|
||||
fn C.tcsetattr(fd int, optional_actions int, termios_p &Termios) int
|
||||
fn C.tcsetattr(fd int, optional_actions int, termios_p &C.termios) int
|
||||
|
||||
fn C.raise(sig int)
|
||||
|
||||
|
@ -47,18 +47,18 @@ enum Action {
|
|||
// Please note that `enable_raw_mode` catches the `SIGUSER` (CTRL + C) signal.
|
||||
// For a method that does please see `enable_raw_mode_nosig`.
|
||||
pub fn (mut r Readline) enable_raw_mode() {
|
||||
if C.tcgetattr(0, &r.orig_termios) == -1 {
|
||||
if C.tcgetattr(0, unsafe { &C.termios(&r.orig_termios) }) == -1 {
|
||||
r.is_tty = false
|
||||
r.is_raw = false
|
||||
return
|
||||
}
|
||||
mut raw := r.orig_termios
|
||||
raw.c_iflag &= ~(C.BRKINT | C.ICRNL | C.INPCK | C.ISTRIP | C.IXON)
|
||||
raw.c_cflag |= (C.CS8)
|
||||
raw.c_cflag |= C.CS8
|
||||
raw.c_lflag &= ~(C.ECHO | C.ICANON | C.IEXTEN | C.ISIG)
|
||||
raw.c_cc[C.VMIN] = 1
|
||||
raw.c_cc[C.VTIME] = 0
|
||||
C.tcsetattr(0, C.TCSADRAIN, &raw)
|
||||
C.tcsetattr(0, C.TCSADRAIN, unsafe { &C.termios(&raw) })
|
||||
r.is_raw = true
|
||||
r.is_tty = true
|
||||
}
|
||||
|
@ -68,18 +68,18 @@ pub fn (mut r Readline) enable_raw_mode() {
|
|||
// Please note that `enable_raw_mode_nosig` does not catch the `SIGUSER` (CTRL + C) signal
|
||||
// as opposed to `enable_raw_mode`.
|
||||
pub fn (mut r Readline) enable_raw_mode_nosig() {
|
||||
if C.tcgetattr(0, &r.orig_termios) == -1 {
|
||||
if C.tcgetattr(0, unsafe { &C.termios(&r.orig_termios) }) == -1 {
|
||||
r.is_tty = false
|
||||
r.is_raw = false
|
||||
return
|
||||
}
|
||||
mut raw := r.orig_termios
|
||||
raw.c_iflag &= ~(C.BRKINT | C.ICRNL | C.INPCK | C.ISTRIP | C.IXON)
|
||||
raw.c_cflag |= (C.CS8)
|
||||
raw.c_cflag |= C.CS8
|
||||
raw.c_lflag &= ~(C.ECHO | C.ICANON | C.IEXTEN)
|
||||
raw.c_cc[C.VMIN] = 1
|
||||
raw.c_cc[C.VTIME] = 0
|
||||
C.tcsetattr(0, C.TCSADRAIN, &raw)
|
||||
C.tcsetattr(0, C.TCSADRAIN, unsafe { &C.termios(&raw) })
|
||||
r.is_raw = true
|
||||
r.is_tty = true
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ pub fn (mut r Readline) enable_raw_mode_nosig() {
|
|||
// For a description of raw mode please see the `enable_raw_mode` method.
|
||||
pub fn (mut r Readline) disable_raw_mode() {
|
||||
if r.is_raw {
|
||||
C.tcsetattr(0, C.TCSADRAIN, &r.orig_termios)
|
||||
C.tcsetattr(0, C.TCSADRAIN, unsafe { &C.termios(&r.orig_termios) })
|
||||
r.is_raw = false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ fn test_atof() {
|
|||
|
||||
// test C.atof
|
||||
n1 := x.strsci(18)
|
||||
n2 := f64(C.atof(src_num_str[c].str)).strsci(18)
|
||||
n2 := f64(C.atof(&char(src_num_str[c].str))).strsci(18)
|
||||
//println("$n1 $n2")
|
||||
assert n1 == n2
|
||||
}
|
||||
|
|
|
@ -328,7 +328,6 @@ fn (mut g Gen) gen_map_equality_fn(left ast.Type) string {
|
|||
fn_builder.writeln('\t\tif (*(voidptr*)map_get(&b, k, &(voidptr[]){ 0 }) != v) {')
|
||||
}
|
||||
else {
|
||||
println(kind)
|
||||
fn_builder.writeln('\t\tif (*($ptr_value_typ*)map_get(&b, k, &($ptr_value_typ[]){ 0 }) != v) {')
|
||||
}
|
||||
}
|
||||
|
|
|
@ -127,7 +127,7 @@ fn (mut g Gen) gen_struct_enc_dec(type_info ast.TypeInfo, styp string, mut enc s
|
|||
field_sym := g.table.get_type_symbol(field.typ)
|
||||
// First generate decoding
|
||||
if field.attrs.contains('raw') {
|
||||
dec.writeln('\tres.${c_name(field.name)} = tos4(cJSON_PrintUnformatted(' +
|
||||
dec.writeln('\tres.${c_name(field.name)} = tos5(cJSON_PrintUnformatted(' +
|
||||
'js_get(root, "$name")));')
|
||||
} else {
|
||||
// Now generate decoders for all field types in this struct
|
||||
|
|
Loading…
Reference in New Issue