static void parse_file_buffer(const char *filename, struct memblock *mem, GError **error) { char *fmt = strrchr(filename, '.'); if (fmt && open_by_filename(filename, fmt+1, mem, error)) return; parse_xml_buffer(filename, mem->buffer, mem->size, error); }
static int parse_file_buffer(const char *filename, struct memblock *mem) { int ret; char *fmt = strrchr(filename, '.'); if (fmt && (ret = open_by_filename(filename, fmt + 1, mem)) != 0) return ret; if (!mem->size || !mem->buffer) return report_error("Out of memory parsing file %s\n", filename); return parse_xml_buffer(filename, mem->buffer, mem->size, &dive_table, NULL); }