X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=code.c;h=5728a8db425f7b724a44717ba8510b400654637e;hp=3590b41b97c203c47c96583fffa078aa034deec1;hb=8c08897749366bd83a9a623727aca2927257d4cf;hpb=cb12460b959ecb662f0fac610f0eaea0d9dbfe18 diff --git a/code.c b/code.c index 3590b41..5728a8d 100644 --- a/code.c +++ b/code.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 + * Copyright (C) 2012, 2013 * Dale Weiler * Wolfgang Bumiller * @@ -137,8 +137,8 @@ bool code_write(const char *filename, const char *lnofile) { code_header.strings.offset = code_header.globals.offset + (sizeof(int32_t) * vec_size(code_globals)); code_header.strings.length = vec_size(code_chars); code_header.version = 6; - if (opts.forcecrc) - code_header.crc16 = opts.forced_crc; + if (OPTS_OPTION_BOOL(OPTION_FORCECRC)) + code_header.crc16 = OPTS_OPTION_U16(OPTION_FORCED_CRC); else code_header.crc16 = code_crc; code_header.entfield = code_entfields; @@ -169,10 +169,9 @@ bool code_write(const char *filename, const char *lnofile) { util_endianswap(code_globals, vec_size(code_globals), sizeof(int32_t)); if (lnofile) { - uint32_t lnotype = *(unsigned int*)"LNOF"; uint32_t version = 1; - fp = file_open(lnofile, "wb"); + fp = fs_file_open(lnofile, "wb"); if (!fp) return false; @@ -180,34 +179,34 @@ bool code_write(const char *filename, const char *lnofile) { util_endianswap(code_linenums, vec_size(code_linenums), sizeof(code_linenums[0])); - if (file_write(&lnotype, sizeof(lnotype), 1, fp) != 1 || - file_write(&version, sizeof(version), 1, fp) != 1 || - file_write(&code_header.defs.length, sizeof(code_header.defs.length), 1, fp) != 1 || - file_write(&code_header.globals.length, sizeof(code_header.globals.length), 1, fp) != 1 || - file_write(&code_header.fields.length, sizeof(code_header.fields.length), 1, fp) != 1 || - file_write(&code_header.statements.length, sizeof(code_header.statements.length), 1, fp) != 1 || - file_write(code_linenums, sizeof(code_linenums[0]), vec_size(code_linenums), fp) != vec_size(code_linenums)) + if (fs_file_write("LNOF", 4, 1, fp) != 1 || + fs_file_write(&version, sizeof(version), 1, fp) != 1 || + fs_file_write(&code_header.defs.length, sizeof(code_header.defs.length), 1, fp) != 1 || + fs_file_write(&code_header.globals.length, sizeof(code_header.globals.length), 1, fp) != 1 || + fs_file_write(&code_header.fields.length, sizeof(code_header.fields.length), 1, fp) != 1 || + fs_file_write(&code_header.statements.length, sizeof(code_header.statements.length), 1, fp) != 1 || + fs_file_write(code_linenums, sizeof(code_linenums[0]), vec_size(code_linenums), fp) != vec_size(code_linenums)) { con_err("failed to write lno file\n"); } - file_close(fp); + fs_file_close(fp); fp = NULL; } - fp = file_open(filename, "wb"); + fp = fs_file_open(filename, "wb"); if (!fp) return false; - if (1 != file_write(&code_header, sizeof(prog_header) , 1 , fp) || - vec_size(code_statements) != file_write(code_statements, sizeof(prog_section_statement), vec_size(code_statements), fp) || - vec_size(code_defs) != file_write(code_defs, sizeof(prog_section_def) , vec_size(code_defs) , fp) || - vec_size(code_fields) != file_write(code_fields, sizeof(prog_section_field) , vec_size(code_fields) , fp) || - vec_size(code_functions) != file_write(code_functions, sizeof(prog_section_function) , vec_size(code_functions) , fp) || - vec_size(code_globals) != file_write(code_globals, sizeof(int32_t) , vec_size(code_globals) , fp) || - vec_size(code_chars) != file_write(code_chars, 1 , vec_size(code_chars) , fp)) + if (1 != fs_file_write(&code_header, sizeof(prog_header) , 1 , fp) || + vec_size(code_statements) != fs_file_write(code_statements, sizeof(prog_section_statement), vec_size(code_statements), fp) || + vec_size(code_defs) != fs_file_write(code_defs, sizeof(prog_section_def) , vec_size(code_defs) , fp) || + vec_size(code_fields) != fs_file_write(code_fields, sizeof(prog_section_field) , vec_size(code_fields) , fp) || + vec_size(code_functions) != fs_file_write(code_functions, sizeof(prog_section_function) , vec_size(code_functions) , fp) || + vec_size(code_globals) != fs_file_write(code_globals, sizeof(int32_t) , vec_size(code_globals) , fp) || + vec_size(code_chars) != fs_file_write(code_chars, 1 , vec_size(code_chars) , fp)) { - file_close(fp); + fs_file_close(fp); return false; } @@ -272,6 +271,8 @@ bool code_write(const char *filename, const char *lnofile) { vec_free(code_functions); vec_free(code_globals); vec_free(code_chars); - file_close(fp); + util_htdel(code_string_cache); + + fs_file_close(fp); return true; }