本文整理汇总了C++中safe_free函数的典型用法代码示例。如果您正苦于以下问题:C++ safe_free函数的具体用法?C++ safe_free怎么用?C++ safe_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了safe_free函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: do_select_shutdown
static void
do_select_shutdown()
{
safe_free(pfds);
safe_free(pfd_map);
}
开发者ID:arthurtumanyan,项目名称:squid-2.6-stable13-shaga,代码行数:6,代码来源:comm_poll.c
示例2: writeSCF
void
writeSCF(FILE *asmFile, bool doWrite) {
SnapScaffoldMesg scf;
GenericMesg pmesg = { &scf, MESG_SCF };
GraphNodeIterator scaffolds;
CIScaffoldT *scaffold;
fprintf(stderr, "writeSCF()--\n");
InitGraphNodeIterator(&scaffolds, ScaffoldGraph->ScaffoldGraph, GRAPH_NODE_DEFAULT);
while ((scaffold = NextGraphNodeIterator(&scaffolds)) != NULL) {
if(scaffold->type != REAL_SCAFFOLD)
continue;
assert(scaffold->info.Scaffold.numElements > 0);
scf.eaccession = AS_UID_fromInteger(getUID(uidServer));
scf.iaccession = scaffold->id;
scf.num_contig_pairs = scaffold->info.Scaffold.numElements - 1;
scf.contig_pairs = (SnapContigPairs *)safe_malloc(sizeof(SnapContigPairs) * scaffold->info.Scaffold.numElements);
CIScaffoldTIterator contigs;
ChunkInstanceT *contigCurr;
ChunkInstanceT *contigLast;
InitCIScaffoldTIterator(ScaffoldGraph, scaffold, TRUE, FALSE, &contigs);
contigLast = NextCIScaffoldTIterator(&contigs);
SequenceOrient orientLast;
SequenceOrient orientCurr;
orientLast.setIsForward(contigLast->offsetAEnd.mean < contigLast->offsetBEnd.mean);
assert(contigLast->scaffoldID == scaffold->id);
if (scf.num_contig_pairs == 0) {
scf.contig_pairs[0].econtig1 = CCOmap.lookup(contigLast->id);
scf.contig_pairs[0].econtig2 = CCOmap.lookup(contigLast->id);
scf.contig_pairs[0].mean = 0.0;
scf.contig_pairs[0].stddev = 0.0;
scf.contig_pairs[0].orient.setIsAB_AB(); // got to put something
} else {
int32 pairCount = 0;
while ((contigCurr = NextCIScaffoldTIterator(&contigs)) != NULL) {
assert(pairCount < scf.num_contig_pairs);
assert(contigCurr->scaffoldID == scaffold->id);
scf.contig_pairs[pairCount].econtig1 = CCOmap.lookup(contigLast->id);
scf.contig_pairs[pairCount].econtig2 = CCOmap.lookup(contigCurr->id);
SequenceOrient orientCurr;
orientCurr.setIsForward(contigCurr->offsetAEnd.mean < contigCurr->offsetBEnd.mean);
if (orientLast.isForward()) {
if (orientCurr.isForward()) {
scf.contig_pairs[pairCount].mean = contigCurr->offsetAEnd.mean - contigLast->offsetBEnd.mean;
scf.contig_pairs[pairCount].stddev = sqrt(contigCurr->offsetAEnd.variance -
contigLast->offsetBEnd.variance);
scf.contig_pairs[pairCount].orient.setIsAB_AB();
} else { //orientCurr == B_A
scf.contig_pairs[pairCount].mean = contigCurr->offsetBEnd.mean - contigLast->offsetBEnd.mean;
scf.contig_pairs[pairCount].stddev = sqrt(contigCurr->offsetBEnd.variance -
contigLast->offsetBEnd.variance);
scf.contig_pairs[pairCount].orient.setIsAB_BA();
}
} else { //orientLast == B_A
if (orientCurr.isForward()) {
scf.contig_pairs[pairCount].mean = contigCurr->offsetAEnd.mean - contigLast->offsetAEnd.mean;
scf.contig_pairs[pairCount].stddev = sqrt(contigCurr->offsetAEnd.variance -
contigLast->offsetAEnd.variance);
scf.contig_pairs[pairCount].orient.setIsBA_AB();
} else { //orientCurr == B_A
scf.contig_pairs[pairCount].mean = contigCurr->offsetBEnd.mean - contigLast->offsetAEnd.mean;
scf.contig_pairs[pairCount].stddev = sqrt(contigCurr->offsetBEnd.variance -
contigLast->offsetAEnd.variance);
scf.contig_pairs[pairCount].orient.setIsBA_BA();
}
}
contigLast = contigCurr;
orientLast = orientCurr;
++pairCount;
}
}
if (doWrite)
WriteProtoMesg_AS(asmFile, &pmesg);
SCFmap.add(scf.iaccession, scf.eaccession);
safe_free(scf.contig_pairs);
}
}
开发者ID:cdunn2001,项目名称:DConvert,代码行数:98,代码来源:terminator.C
示例3: delete_ptr_heap
/*
* Delete
*/
void delete_ptr_heap(ptr_heap_t *heap) {
safe_free(heap->heap);
heap->heap = NULL;
}
开发者ID:polazarus,项目名称:ocamlyices2,代码行数:7,代码来源:ptr_heap.c
示例4: state_free
void state_free (struct browser_state *state)
{
safe_free((void**)&state->entry);
safe_free((void**)&state->folder);
}
开发者ID:hww3,项目名称:pexts,代码行数:5,代码来源:browse.c
示例5: writeCCO
//.........这里部分代码省略.........
continue;
NodeCGW_T *unitig = GetGraphNode(ScaffoldGraph->CIGraph, contig->info.Contig.AEndCI);
if ((ScaffoldGraph->tigStore->getNumUnitigs(contig->id, FALSE) == 1) &&
(contig->scaffoldID == NULLINDEX) &&
(unitig->info.CI.numInstances > 0))
// Contig is a surrogate instance
continue;
MultiAlignT *ma = ScaffoldGraph->tigStore->loadMultiAlign(contig->id, FALSE);
cco.eaccession = AS_UID_fromInteger(getUID(uidServer));
cco.iaccession = contig->id;
cco.placed = ScaffoldGraph->tigStore->getContigStatus(contig->id);
cco.length = GetMultiAlignLength(ma);
cco.consensus = Getchar(ma->consensus, 0);
cco.quality = Getchar(ma->quality, 0);
cco.forced = 0;
cco.num_pieces = GetNumIntMultiPoss(ma->f_list);
cco.num_unitigs = GetNumIntMultiPoss(ma->u_list);
cco.num_vars = GetNumIntMultiPoss(ma->v_list);
cco.pieces = NULL;
cco.unitigs = NULL;
cco.vars = NULL;
if (cco.consensus == NULL)
fprintf(stderr, "buildCCOMessage()-- contig %d missing consensus sequence\n",
cco.iaccession);
assert(cco.consensus != NULL);
if (cco.length != strlen(cco.consensus))
fprintf(stderr, "buildCCOMessage()-- contig %d length %d != consensus string length "F_SIZE_T"\n",
cco.iaccession, cco.length, strlen(cco.consensus));
assert(cco.length == strlen(cco.consensus));
if (cco.num_pieces > 0) {
cco.pieces = (SnapMultiPos *)safe_malloc(cco.num_pieces * sizeof(SnapMultiPos));
for(int32 i=0; i<cco.num_pieces; i++) {
IntMultiPos *imp = GetIntMultiPos(ma->f_list, i);
cco.pieces[i].type = imp->type;
cco.pieces[i].eident = FRGmap.lookup(imp->ident);
cco.pieces[i].delta_length = imp->delta_length;
cco.pieces[i].position = imp->position;
cco.pieces[i].delta = imp->delta;
}
}
if (cco.num_unitigs > 0) {
cco.unitigs = (UnitigPos *)safe_malloc(cco.num_unitigs * sizeof(UnitigPos));
for(int32 i=0; i<cco.num_unitigs; i++) {
IntUnitigPos *imp = GetIntUnitigPos(ma->u_list, i);
cco.unitigs[i].type = imp->type;
cco.unitigs[i].eident = UTGmap.lookup(imp->ident);
cco.unitigs[i].position = imp->position;
cco.unitigs[i].delta = imp->delta;
cco.unitigs[i].delta_length = imp->delta_length;
}
}
if (cco.num_vars > 0) {
cco.vars = (IntMultiVar *)safe_malloc(cco.num_vars * sizeof(IntMultiVar));
for(int32 i=0; i<cco.num_vars; i++) {
IntMultiVar *imv = GetIntMultiVar(ma->v_list, i);
cco.vars[i].var_id = imv->var_id;
cco.vars[i].phased_id = imv->phased_id;
cco.vars[i].position = imv->position;
cco.vars[i].num_reads = imv->num_reads;
cco.vars[i].num_alleles = imv->num_alleles;
cco.vars[i].num_alleles_confirmed = imv->num_alleles_confirmed;
cco.vars[i].min_anchor_size = imv->min_anchor_size;
cco.vars[i].var_length = imv->var_length;
cco.vars[i].alleles = imv->alleles;
cco.vars[i].var_seq_memory = imv->var_seq_memory;
cco.vars[i].read_id_memory = imv->read_id_memory;
cco.vars[i].enc_num_reads = NULL;
cco.vars[i].enc_weights = NULL;
cco.vars[i].enc_var_seq = NULL;
cco.vars[i].enc_read_ids = NULL;
}
}
if (doWrite)
WriteProtoMesg_AS(asmFile, &pmesg);
safe_free(cco.pieces);
safe_free(cco.unitigs);
safe_free(cco.vars);
CCOmap.add(cco.iaccession, cco.eaccession);
}
}
开发者ID:cdunn2001,项目名称:DConvert,代码行数:101,代码来源:terminator.C
示例6: md_mfd_license_commit_side_effects
//.........这里部分代码省略.........
ns_maxconnections = smprintf("/nkn/nvsd/network/config/max_connections");
bail_null(ns_maxconnections);
ns_maxbandwidth = smprintf("/nkn/nvsd/network/config/max_bandwidth");
bail_null(ns_maxbandwidth);
err = mdb_set_node_str(commit, inout_new_db, bsso_modify, 0,
bt_uint32, t_max_connections, "%s", ns_maxconnections);
bail_error(err);
err = mdb_set_node_str(commit, inout_new_db, bsso_modify, 0,
bt_uint32, t_max_bandwidth, "%s", ns_maxbandwidth);
bail_error(err);
/* Do the reset of max_session_rate of virtual player only if license expires */
if (t_mfd_license)
goto bail;
/* Now iterate through the virtual-players and get the max_session_rate nodes */
err = mdb_get_matching_tstr_array(commit, inout_new_db,
"/nkn/nvsd/virtual_player/config/*",
mdqf_sel_class_no_state, &t_vp_max_rate_list);
num_vps = tstr_array_length_quick(t_vp_max_rate_list);
for (idx = 0; idx < num_vps; idx++)
{
err = mdb_set_node_str(commit, inout_new_db, bsso_modify, 0,
bt_uint32, "0", "%s/max_session_rate",
tstr_array_get_str_quick(t_vp_max_rate_list, idx));
bail_error(err);
}
}
else
#endif /* USE_MFD_LICENSE */
/* check if it is MFD's SSL license node */
if ((bn_binding_name_pattern_match(ts_str(change->mdc_name), nkn_mfd_ssl_lic_node))
&& (mdct_modify == change->mdc_change_type))
{
tbool t_mfd_ssl_license = false;
/* First get the license node value */
err = mdb_get_node_value_tbool(commit, inout_new_db,
ts_str(change->mdc_name), 0, &found,
&t_mfd_ssl_license);
bail_error(err);
if (t_mfd_ssl_license) {
/* License is valid. Raise an event ?? */
} else {
/* License if invalid */
}
}
}
#ifndef USE_MFD_LICENSE
tbool t_mfd_license = false;
const char *t_max_connections = 0;
const char *t_max_bandwidth = 0;
/* Change the defaults when license is good */
t_max_connections = VALID_LICENSE_MAXCONN;
t_max_bandwidth = VALID_LICENSE_MAXBW;
ns_maxconnections = smprintf("/nkn/nvsd/network/config/max_connections");
bail_null(ns_maxconnections);
ns_maxbandwidth = smprintf("/nkn/nvsd/network/config/max_bandwidth");
bail_null(ns_maxbandwidth);
err = mdb_set_node_str(commit, inout_new_db, bsso_modify, 0,
bt_uint32, t_max_connections, "%s", ns_maxconnections);
bail_error(err);
err = mdb_set_node_str(commit, inout_new_db, bsso_modify, 0,
bt_uint32, t_max_bandwidth, "%s", ns_maxbandwidth);
bail_error(err);
/* Do the reset of max_session_rate of virtual player only if license expires */
/* Now iterate through the virtual-players and get the max_session_rate nodes */
err = mdb_get_matching_tstr_array(commit, inout_new_db,
"/nkn/nvsd/virtual_player/config/*",
mdqf_sel_class_no_state, &t_vp_max_rate_list);
num_vps = tstr_array_length_quick(t_vp_max_rate_list);
for (idx = 0; idx < num_vps; idx++)
{
err = mdb_set_node_str(commit, inout_new_db, bsso_modify, 0,
bt_uint32, "0", "%s/max_session_rate",
tstr_array_get_str_quick(t_vp_max_rate_list, idx));
bail_error(err);
}
#endif /* ! USE_MFD_LICENSE */
bail:
tstr_array_free(&t_vp_max_rate_list);
safe_free(ns_maxconnections);
safe_free(ns_maxbandwidth);
return err;
}
开发者ID:skizhak,项目名称:open-media-flow-controller,代码行数:101,代码来源:md_mfd_license.c
示例7: storeurlStateFree
static void
storeurlStateFree(storeurlStateData * r)
{
safe_free(r->orig_url);
cbdataFree(r);
}
开发者ID:CoolerVoid,项目名称:squid,代码行数:6,代码来源:store_rewrite.c
示例8: main
//.........这里部分代码省略.........
if (argc < 2) {
printf("usage: %s <inf_name>\n", argv[0]);
plog("missing inf_name parameter");
}
inf_name = argv[1];
plog("got parameter %s", argv[1]);
r = GetFullPathNameU(".", MAX_PATH_LENGTH, path, NULL);
if ((r == 0) || (r > MAX_PATH_LENGTH)) {
plog("could not retrieve absolute path of working directory");
ret = WDI_ERROR_ACCESS;
goto out;
}
safe_strcat(path, MAX_PATH_LENGTH, "\\");
safe_strcat(path, MAX_PATH_LENGTH, inf_name);
device_id = req_id(IC_GET_DEVICE_ID);
hardware_id = req_id(IC_GET_HARDWARE_ID);
// Will be used if we ever need to create a file, as the original user, from this app
user_sid = req_id(IC_GET_USER_SID);
ConvertStringSidToSidA(user_sid, &user_psid);
// Setup the syslog reader thread
syslog_ready_event = CreateEvent(NULL, TRUE, FALSE, NULL);
syslog_terminate_event = CreateEvent(NULL, TRUE, FALSE, NULL);
syslog_reader_thid = _beginthread(syslog_reader_thread, 0, 0);
if ( (syslog_reader_thid == -1L)
|| (WaitForSingleObject(syslog_ready_event, 2000) != WAIT_OBJECT_0) ) {
plog("Unable to create syslog reader thread");
SetEvent(syslog_terminate_event);
// NB: if you try to close the syslog reader thread handle, you get a
// "more recent driver was found" error from UpdateForPnP. Weird...
}
// Disable the creation of a restore point
disable_system_restore(TRUE);
// Find if the device is plugged in
send_status(IC_SET_TIMEOUT_INFINITE);
if (hardware_id != NULL) {
plog("Installing driver for %s - please wait...", hardware_id);
b = UpdateDriverForPlugAndPlayDevicesU(NULL, hardware_id, path, INSTALLFLAG_FORCE, NULL);
send_status(IC_SET_TIMEOUT_DEFAULT);
if (b == TRUE) {
// Success
plog("driver update completed");
enumerate_device(device_id);
ret = WDI_SUCCESS;
goto out;
}
ret = process_error(GetLastError(), path);
if (ret != WDI_SUCCESS) {
goto out;
}
}
// TODO: try URL for OEMSourceMediaLocation (v2)
plog("Copying inf file (for the next time device is plugged) - please wait...");
send_status(IC_SET_TIMEOUT_INFINITE);
b = SetupCopyOEMInfU(path, NULL, SPOST_PATH, 0, destname, MAX_PATH_LENGTH, NULL, NULL);
send_status(IC_SET_TIMEOUT_DEFAULT);
if (b) {
plog("copied inf to %s", destname);
ret = WDI_SUCCESS;
enumerate_device(device_id);
goto out;
}
ret = process_error(GetLastError(), path);
if (ret != WDI_SUCCESS) {
goto out;
}
// If needed, flag removed devices for reinstallation. see:
// http://msdn.microsoft.com/en-us/library/aa906206.aspx
check_removed(hardware_id);
out:
// Report any error status code and wait for target app to read it
send_status(IC_INSTALLER_COMPLETED);
pstat(ret);
// Restore the system restore point creation original settings
disable_system_restore(FALSE);
// TODO: have libwi send an ACK?
Sleep(1000);
SetEvent(syslog_terminate_event);
if (argv != argv_ansi) {
for (i=0; i<argc; i++) {
safe_free(argv[i]);
}
safe_free(argv);
}
CloseHandle(syslog_ready_event);
CloseHandle(syslog_terminate_event);
CloseHandle((HANDLE)syslog_reader_thid);
CloseHandle(pipe_handle);
return ret;
}
开发者ID:Acidburn0zzz,项目名称:libwdi,代码行数:101,代码来源:installer.c
示例9: updateICMRecord
void updateICMRecord(IntConConMesg *icm_mesg, char * inFile, char *seqAn, char *prefix, char * wrkDir) {
// update the consensus
icm_mesg->consensus = getConsensus(inFile, seqAn, prefix, wrkDir);
icm_mesg->length = strlen(icm_mesg->consensus);
// update quality
icm_mesg->quality = (char *) safe_malloc(sizeof(char) * icm_mesg->length+1);
memset(icm_mesg->quality, '1', icm_mesg->length);
icm_mesg->quality[icm_mesg->length] = '\0';
//update read data
int32 currRead = 0;
char line[AS_SEQAN_MAX_RESULT_LENGTH];
char resultFile[AS_SEQAN_MAX_BUFFER_LENGTH];
getFileName(prefix, wrkDir, AS_SEQAN_RESULT, resultFile);
FILE *tempOut;
tempOut = fopen(resultFile,"r");
// skip header of output
while (!feof(tempOut)) {
fgets(line, AS_SEQAN_MAX_RESULT_LENGTH, tempOut);
if (strncasecmp(line, "typ", 3) == 0) {
break;
}
}
// now read alignments of each read
for (currRead = 0; currRead < icm_mesg->num_pieces; currRead++) {
if (currRead > 0) {
// read the typ: line
fgets(line, AS_SEQAN_MAX_RESULT_LENGTH, tempOut);
}
// read the seq: line
fgets(line, AS_SEQAN_MAX_RESULT_LENGTH, tempOut);
// read the Pos line
fgets(line, AS_SEQAN_MAX_RESULT_LENGTH, tempOut);
chomp(line);
int32 begin, end;
sscanf(line,"Pos:"F_S32","F_S32,&begin,&end);
icm_mesg->pieces[currRead].position.bgn = begin;
icm_mesg->pieces[currRead].position.end = end;
// read the dln line
fgets(line, AS_SEQAN_MAX_RESULT_LENGTH, tempOut);
chomp(line);
sscanf(line,"dln:"F_S32, &icm_mesg->pieces[currRead].delta_length);
// read the del line
fgets(line, AS_SEQAN_MAX_RESULT_LENGTH, tempOut);
chomp(line);
if (icm_mesg->pieces[currRead].delta_length > 0) {
char *dlnStr = line+AS_SEQAN_MAX_HEADER_LENGTH;
icm_mesg->pieces[currRead].delta = (int32 *)safe_malloc(sizeof(int32) * icm_mesg->pieces[currRead].delta_length);
int32 i = 0;
while (i < icm_mesg->pieces[currRead].delta_length) {
icm_mesg->pieces[currRead].delta[i] = (int32) strtol(dlnStr,&dlnStr,10);
i++;
}
}
// read blank line
fgets(line, AS_SEQAN_MAX_RESULT_LENGTH, tempOut);
}
// now read the alignments of each unitig
for (currRead = 0; currRead < icm_mesg->num_unitigs; currRead++) {
// read the seq: line
while (strncmp(line, "Pos:", 4) != 0) {
fgets(line, AS_SEQAN_MAX_RESULT_LENGTH, tempOut);
}
// we read the Pos line above, process it now
chomp(line);
int32 begin, end;
sscanf(line,"Pos:"F_S32","F_S32,&begin,&end);
// read the dln line
fgets(line, AS_SEQAN_MAX_RESULT_LENGTH, tempOut);
chomp(line);
sscanf(line,"dln:"F_S32, &icm_mesg->unitigs[currRead].delta_length);
// read the del line
char * del = readMultiLine(tempOut);
if (currRead >= 0) {
icm_mesg->unitigs[currRead].position.bgn = begin;
icm_mesg->unitigs[currRead].position.end = end;
if (icm_mesg->unitigs[currRead].delta_length > 0) {
char *dlnStr = del+AS_SEQAN_MAX_HEADER_LENGTH;
icm_mesg->unitigs[currRead].delta = (int32 *)safe_malloc(sizeof(int32) * icm_mesg->unitigs[currRead].delta_length);
int32 i = 0;
while (i < icm_mesg->unitigs[currRead].delta_length) {
icm_mesg->unitigs[currRead].delta[i] = (int32) strtol(dlnStr,&dlnStr,10);
i++;
}
}
}
safe_free(del);
//.........这里部分代码省略.........
开发者ID:cdunn2001,项目名称:DConvert,代码行数:101,代码来源:SeqAn_CNS.C
示例10: build_elem_comm_maps
int build_elem_comm_maps(int proc, MESH_INFO_PTR mesh)
{
/*
* Build element communication maps, given a distributed mesh.
* This routine builds initial communication maps for Chaco input
* (for Nemesis, initial communication maps are read from the Nemesis file)
* and rebuilds communication maps after data migration.
*
* One communication map per neighboring processor is built.
* The corresponding maps on neighboring processors
* must be sorted in the same order, so that neighboring processors do not
* have to use ghost elements. For each communication map's pair of
* processors, the lower-numbered processor determines the order of the
* elements in the communication map. The sort key is the elements' global
* IDs on the lower-number processor; the secondary key is the neighboring
* elements global IDs. The secondary key is used when a single element
* must communicate with more than one neighbor.
*/
const char *yo = "build_elem_comm_maps";
int i, j;
ELEM_INFO *elem;
ZOLTAN_ID_TYPE iadj_elem;
int iadj_proc;
int indx;
int num_alloc_maps;
int max_adj = 0;
int max_adj_per_map;
int cnt, offset;
int *sindex = NULL;
int tmp;
struct map_list_head *tmp_maps = NULL, *map = NULL;
DEBUG_TRACE_START(proc, yo);
/*
* Free the old maps, if they exist.
*/
if (mesh->ecmap_id != NULL) {
safe_free((void **) &(mesh->ecmap_id));
safe_free((void **) &(mesh->ecmap_cnt));
safe_free((void **) &(mesh->ecmap_elemids));
safe_free((void **) &(mesh->ecmap_sideids));
safe_free((void **) &(mesh->ecmap_neighids));
mesh->necmap = 0;
}
/*
* Look for off-processor adjacencies.
* Loop over all elements
*/
num_alloc_maps = MAP_ALLOC;
mesh->ecmap_id = (int *) malloc(num_alloc_maps * sizeof(int));
mesh->ecmap_cnt = (int *) malloc(num_alloc_maps * sizeof(int));
tmp_maps = (struct map_list_head*) malloc(num_alloc_maps
* sizeof(struct map_list_head));
if (mesh->ecmap_id == NULL || mesh->ecmap_cnt == NULL || tmp_maps == NULL) {
Gen_Error(0, "Fatal: insufficient memory");
DEBUG_TRACE_END(proc, yo);
return 0;
}
for (i = 0; i < mesh->num_elems; i++) {
elem = &(mesh->elements[i]);
for (j = 0; j < elem->adj_len; j++) {
/* Skip NULL adjacencies (sides that are not adjacent to another elem). */
if (elem->adj[j] == ZOLTAN_ID_INVALID) continue;
iadj_elem = elem->adj[j];
iadj_proc = elem->adj_proc[j];
if (iadj_proc != proc) {
/*
* Adjacent element is off-processor.
* Add this element to the temporary data structure for
* the appropriate neighboring processor.
*/
if ((indx = in_list2(iadj_proc, mesh->necmap, mesh->ecmap_id)) == -1) {
/*
* Start a new communication map.
*/
if (mesh->necmap >= num_alloc_maps) {
num_alloc_maps += MAP_ALLOC;
mesh->ecmap_id = (int *) realloc(mesh->ecmap_id,
num_alloc_maps * sizeof(int));
mesh->ecmap_cnt = (int *) realloc(mesh->ecmap_cnt,
num_alloc_maps * sizeof(int));
tmp_maps = (struct map_list_head *) realloc(tmp_maps,
num_alloc_maps * sizeof(struct map_list_head));
if (mesh->ecmap_id == NULL || mesh->ecmap_cnt == NULL ||
tmp_maps == NULL) {
Gen_Error(0, "Fatal: insufficient memory");
DEBUG_TRACE_END(proc, yo);
return 0;
}
//.........这里部分代码省略.........
开发者ID:johntfoster,项目名称:seacas,代码行数:101,代码来源:dr_mapsCPP.cpp
示例11: syslog_reader_thread
/*
* Read from the driver installation syslog in real-time
*/
void __cdecl syslog_reader_thread(void* param)
{
#define NB_SYSLOGS 3
char* syslog_name[NB_SYSLOGS] = { "\\inf\\setupapi.dev.log", "\\setupapi.log", "\\setupact.log" };
HANDLE log_handle;
DWORD last_offset, size, read_size, processed_size;
char *buffer = NULL;
char log_path[MAX_PATH_LENGTH];
DWORD duration = 0;
int i;
// Try the various driver installation logs
for (i=0; i<NB_SYSLOGS; i++) {
safe_strcpy(log_path, MAX_PATH_LENGTH, getenv("WINDIR")); // Use %WINDIR% env variable
safe_strcat(log_path, MAX_PATH_LENGTH, syslog_name[i]);
log_handle = CreateFileA(log_path, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (log_handle != INVALID_HANDLE_VALUE) {
plog("using syslog '%s'", log_path);
break;
}
}
if (i == NB_SYSLOGS) {
plog("Could not open any syslog");
goto out;
}
// We assert that the log file is never gonna be bigger than 2 GB
// TODO: special case of setupapi.dev.log's last offset not being the end (v2)
last_offset = SetFilePointer(log_handle, 0, NULL, FILE_END);
if (last_offset == INVALID_SET_FILE_POINTER) {
plog("Could not set syslog offset");
goto out;
}
plog("sylog reader thread started");
SetEvent(syslog_ready_event);
processed_size = 0;
while(WaitForSingleObject(syslog_terminate_event, 0) != WAIT_OBJECT_0) {
// Find out if file size has increased since last time
size = GetFileSize(log_handle, NULL);
if (size == INVALID_FILE_SIZE) {
plog("could not read syslog file size");
goto out;
}
size -= last_offset;
if (size != 0) {
// Read from file and add a zero terminator
buffer = malloc(size+1);
if (buffer == NULL) {
plog("could not allocate buffer to read syslog");
goto out;
}
// Keep an extra spare byte at the beginning
if (!ReadFile(log_handle, buffer, size, &read_size, NULL)) {
plog("failed to read syslog");
goto out;
}
buffer[read_size] = 0;
// Send all the complete lines through the pipe
processed_size = process_syslog(buffer, read_size);
safe_free(buffer);
last_offset += processed_size;
// Reposition at start of last line if needed
if (processed_size != read_size) {
last_offset = SetFilePointer(log_handle, processed_size-read_size, NULL, FILE_CURRENT);
if (last_offset == INVALID_SET_FILE_POINTER) {
plog("Could not set syslog offset");
goto out;
}
}
// Reset adaptive sleep duration if we did send data out
if (processed_size !=0) {
duration = 0;
}
}
// Compute adaptive sleep duration
if (((size == 0) || (processed_size == 0)) && (duration < 500)) {
duration += 100; // read log more frequently on recent update
}
Sleep(duration);
}
out:
plog("syslog reader thread terminating");
safe_free(buffer);
CloseHandle(log_handle);
_endthread();
}
开发者ID:Acidburn0zzz,项目名称:libwdi,代码行数:99,代码来源:installer.c
示例12: gopherToHTML
//.........这里部分代码省略.........
break;
case GOPHER_INFO:
icon_url = NULL;
break;
default:
icon_url = mimeGetIconURL("internal-unknown");
break;
}
memset(tmpbuf, '\0', TEMP_BUF_SIZE);
if ((gtype == GOPHER_TELNET) || (gtype == GOPHER_3270)) {
if (strlen(escaped_selector) != 0)
snprintf(tmpbuf, TEMP_BUF_SIZE, "<IMG border=\"0\" SRC=\"%s\"> <A HREF=\"telnet://%[email protected]%s%s%s/\">%s</A>\n",
icon_url, escaped_selector, rfc1738_escape_part(host),
*port ? ":" : "", port, html_quote(name));
else
snprintf(tmpbuf, TEMP_BUF_SIZE, "<IMG border=\"0\" SRC=\"%s\"> <A HREF=\"telnet://%s%s%s/\">%s</A>\n",
icon_url, rfc1738_escape_part(host), *port ? ":" : "",
port, html_quote(name));
} else if (gtype == GOPHER_INFO) {
snprintf(tmpbuf, TEMP_BUF_SIZE, "\t%s\n", html_quote(name));
} else {
if (strncmp(selector, "GET /", 5) == 0) {
/* WWW link */
snprintf(tmpbuf, TEMP_BUF_SIZE, "<IMG border=\"0\" SRC=\"%s\"> <A HREF=\"http://%s/%s\">%s</A>\n",
icon_url, host, rfc1738_escape_unescaped(selector + 5), html_quote(name));
} else {
/* Standard link */
snprintf(tmpbuf, TEMP_BUF_SIZE, "<IMG border=\"0\" SRC=\"%s\"> <A HREF=\"gopher://%s/%c%s\">%s</A>\n",
icon_url, host, gtype, escaped_selector, html_quote(name));
}
}
safe_free(escaped_selector);
strCat(outbuf, tmpbuf);
} else {
memset(line, '\0', TEMP_BUF_SIZE);
continue;
}
} else {
memset(line, '\0', TEMP_BUF_SIZE);
continue;
}
break;
} /* HTML_DIR, HTML_INDEX_RESULT */
case HTML_CSO_RESULT:{
if (line[0] == '-') {
int code, recno;
char *s_code, *s_recno, *result;
s_code = strtok(line + 1, ":\n");
s_recno = strtok(NULL, ":\n");
result = strtok(NULL, "\n");
if (!result)
break;
code = atoi(s_code);
recno = atoi(s_recno);
if (code != 200)
break;
if (gopherState->cso_recno != recno) {
开发者ID:miettal,项目名称:armadillo420_standard,代码行数:67,代码来源:gopher.c
示例13: updateFragmentWithParent
//.........这里部分代码省略.........
// Otherwise, try to find an overlap again, this time allowing a
// bit of slop in the hangs.
//
if (hangSlop == 0) {
hangSlop = 10;
goto tryAgain;
}
// Now, we're convinced there is no decent overlap between this
// fragment and any fragment before it.
//
// Scan forward for the first thing we overlap.
for (testFrag=thisFrag+1; testFrag < iunitig->num_frags; testFrag++) {
int ahang = 0;
int bhang = 0;
testOvl = LookupValueInHashTable_AS(ovlAfter, (uint64)iunitig->f_list[testFrag].ident, sizeof(uint64));
// Fragment has no overlap
if (testOvl == -1)
continue;
// Overlap is too noisy
if (ovl[testOvl].dat.ovl.orig_erate >= consensusCutoff)
continue;
if (iunitig->f_list[testFrag].position.bgn < iunitig->f_list[testFrag].position.end) {
ahang = ovl[testOvl].dat.ovl.a_hang;
bhang = ovl[testOvl].dat.ovl.b_hang;
} else {
ahang = -ovl[testOvl].dat.ovl.b_hang;
bhang = -ovl[testOvl].dat.ovl.a_hang;
}
// Don't allow negative ahangs. At all. This catches the case
// where the parent might be contained in us, and generally makes
// consensus happier.
//
// Don't allow empty hangs - this can lead to infinite loops
// where we keep swapping the same two fragments. OK, not
// infinite, since we eventually run out of stack space and
// crash.
//
if (ahang <= 0)
continue;
fprintf(stderr, "shifttest ovl=%d testFrag="F_IID" pos %d-%d thisFrag="F_IID" pos %d-%d hangs %d,%d\n",
testOvl,
iunitig->f_list[testFrag].ident,
iunitig->f_list[testFrag].position.bgn,
iunitig->f_list[testFrag].position.end,
iunitig->f_list[thisFrag].ident,
iunitig->f_list[thisFrag].position.bgn,
iunitig->f_list[thisFrag].position.end,
ahang, bhang);
IntMultiPos fragCopy = iunitig->f_list[thisFrag];
memmove(iunitig->f_list + thisFrag,
iunitig->f_list + thisFrag + 1,
sizeof(IntMultiPos) * (testFrag - thisFrag));
iunitig->f_list[testFrag] = fragCopy;
fprintf(stderr, "Shifted fragment "F_IID" from position %d to position %d\n",
iunitig->f_list[testFrag].ident,
thisFrag, testFrag);
// Since we moved things around, we must process the new fragment
// at 'thisFrag's location.
//
failed = updateFragmentWithParent(iunitig, thisFrag, ovs);
if (failed == -1)
goto successfullyUpdated;
break;
}
// And we failed. Good luck with this one.
//
fprintf(stderr, "Failed to update fragment "F_IID" from "F_IID",%d,%d.\n",
iunitig->f_list[thisFrag].ident,
oldParent,
oldAHang,
oldBHang);
failed = thisFrag;
successfullyUpdated:
DeleteHashTable_AS(ovlBefore);
DeleteHashTable_AS(ovlAfter);
safe_free(ovl);
return(failed);
}
开发者ID:macmanes-lab,项目名称:wgs-assembler,代码行数:101,代码来源:fixUnitigs.C
示例14: locationRewriteStateFree
static void
locationRewriteStateFree(rewriteStateData * r)
{
safe_free(r->orig_url);
cbdataFree(r);
}
开发者ID:arthurtumanyan,项目名称:squid-2.6-stable13-shaga,代码行数:6,代码来源:locrewrite.c
示例15: main
int32
main(int32 argc, char **argv) {
int32 arg = 1;
int32 err = 0;
int32 hlp = 0;
char * gkpStoreName = NULL;
int32 gkpStorePart = 0;
char * msgFile = NULL;
char * outputFileName= NULL;
char * seqAn = NULL;
char * wrkDir = NULL;
char * seqStoreName = NULL;
int32 seqStoreVer = 0;
int32 seqStorePart = 0;
argc = AS_configure(argc, argv);
while (arg < argc) {
if (strcmp(argv[arg], "-c") == 0) {
msgFile = argv[++arg];
} else if (strcmp(argv[arg], "-G") == 0) {
gkpStoreName = argv[++arg];
} else if (strcmp(argv[arg], "-S") == 0) {
gkpStorePart = atoi(argv[++arg]);
} else if (strcmp(argv[arg], "-o") == 0) {
outputFileName = argv[++arg];
} else if (strcmp(argv[arg], "-s") == 0) {
seqAn = argv[++arg];
} else if (strcmp(argv[arg], "-w") == 0) {
wrkDir = argv[++arg];
} else if (strcmp(argv[arg], "-u") == 0) {
seqStoreName = argv[++arg];
} else if (strcmp(argv[arg], "-V") == 0) {
seqStoreVer = atoi(argv[++arg]);
} else if (strcmp(argv[arg], "-p") == 0) {
seqStorePart = atoi(argv[++arg]);
} else {
err++;
}
arg++;
}
if ((err) || (gkpStoreName == NULL) || (msgFile == NULL) || (outputFileName == NULL) || seqAn == NULL) {
fprintf(stderr, "USAGE: SeqAn_CNS -G <gkpStore> -c <input.cgb> -o <output.cgi> -s <seqan_executable> [-u seqstore, required for contig consensus] [-w working directory]\n");
exit(1);
}
gkStore *gkpStore = new gkStore(gkpStoreName, FALSE, FALSE);
gkpStore->gkStore_loadPartition(gkpStorePart);
gkFragment fr;
GenericMesg *pmesg;
tSequenceDB *sequenceDB = NULL;
FILE *infp = fopen(msgFile,"r");
FILE *tempReads;
FILE *outfp = fopen(outputFileName, "w");
char fileName[AS_SEQAN_MAX_BUFFER_LENGTH];
char *prefix = outputFileName;
getFileName(prefix, wrkDir, AS_SEQAN_INPUT_NAME, fileName);
int32 i = 0;
while ((EOF != ReadProtoMesg_AS(infp, &pmesg))) {
int32 freeMem = 0;
if (pmesg->t == MESG_IUM) {
IntUnitigMesg *ium_mesg = (IntUnitigMesg *)pmesg->m;
if (strlen(ium_mesg->consensus) == 0) {
tempReads = fopen(fileName,"w");
for (i =0; i < ium_mesg->num_frags; i++) {
// get the fragment sequence
gkpStore->gkStore_getFragment(ium_mesg->f_list[i].ident, &fr, GKFRAGMENT_QLT);
uint32 clrBeg = fr.gkFragment_getClearRegionBegin();
uint32 clrEnd = fr.gkFragment_getClearRegionEnd ();
char *seqStart = fr.gkFragment_getSequence();
char *seq = seqStart+clrBeg;
seq[clrEnd] = 0;
AS_UTL_writeFastA(tempReads,
seq, clrEnd-clrBeg,
">"F_IID","F_IID"\n", ium_mesg->f_list[i].position.bgn, ium_mesg->f_list[i].position.end);
}
fclose(tempReads);
updateRecord(ium_mesg, fileName, seqAn, prefix, wrkDir);
freeMem = 1;
}
WriteProtoMesg_AS(outfp, pmesg);
if (freeMem) {
safe_free(ium_mesg->consensus);
safe_free(ium_mesg->quality);
}
}
else if (pmesg->t == MESG_ICM) {
IntConConMesg *icm_mesg = (IntConConMesg *)pmesg->m;
//.........这里部分代码省略.........
开发者ID:cdunn2001,项目名称:DConvert,代码行数:101,代码来源:SeqAn_CNS.C
示例16: START_TEST
END_TEST
START_TEST (test_util_trim)
{
char *p, *q, *r, *s, *t, *u, *v, *w, *x, *y, *z;
fail_unless( !strcmp( p = util_trim("p" ), "p") );
fail_unless( !strcmp( q = util_trim("q " ), "q") );
fail_unless( !strcmp( r = util_trim(" r" ), "r") );
fail_unless( !strcmp( s = util_trim(" s "), "s") );
fail_unless( !strcmp( t = util_trim("foo" ), "foo") );
fail_unless( !strcmp( u = util_trim("foo " ), "foo") );
fail_unless( !strcmp( v = util_trim(" bar" ), "bar") );
fail_unless( !strcmp( w = util_trim(" bar "), "bar") );
fail_unless( !strcmp( x = util_trim(" foo bar " ), "foo bar") );
fail_unless( !strcmp( y = util_trim(" "), "") );
fail_unless( !strcmp( z = util_trim("" ), "") );
fail_unless( util_trim((char *) NULL) == NULL );
safe_free(p);
safe_free(q);
safe_free(r);
safe_free(s);
safe_free(t);
safe_free(u);
safe_free(v);
safe_free(w);
safe_free(x);
safe_free(y);
safe_free(z);
}
开发者ID:TotteKarlsson,项目名称:roadrunner,代码行数:38,代码来源:TestUtil.c
示例17: idnsFreeNameservers
static void
idnsFreeNameservers(void)
{
safe_free(nameservers);
nns = nns_alloc = 0;
}
开发者ID:UTSASRG,项目名称:DoubleTake,代码行数:6,代码来源:dns_internal.c
示例18: printf
//.........这里部分代码省略.........
iproc) < 0) {
fprintf(stderr,
"%s: ERROR. Failed to get elemental comm map for Proc %d!\n",
yo, iproc);
exit(1);
}
}
/*
* Communicate load balance information to the correct processor
* - if iproc = Proc_Ids[*] then process the data instead.
*/
assert(Proc_Ids[iproc] == iproc);
process_lb_data (Integer_Vector, iproc);
/*
* now move ijump to the next communications map
* make sure to check if there are any for this processor
*/
if (Node_Comm_Num[iproc] > 0) ijump += 2;
if (Elem_Comm_Num[iproc] > 0) ijump += 2;
}
/* Close the load balance file - we are finished with it */
if(ex_close (lb_exoid) == -1) {
fprintf (stderr, "%sERROR: Error in closing load balance file\n", yo);
exit(1);
}
/************************* Cleanup and Printout Phase ***********************/
/* Free temporary memory */
safe_free((void **) &Integer_Vector);
if(num_qa_rec > 0) {
for(int i = 0; i < length_qa; i++) safe_free((void **) &(qa_record_ptr[i]));
safe_free((void **) &qa_record_ptr);
}
if(num_inf_rec > 0) {
for(int i = 0; i < num_inf_rec; i++) safe_free((void **) &(inf_record_ptr[i]));
safe_free((void **) &inf_record_ptr);
}
safe_free((void **) &Int_Space);
safe_free((void **) &comm_vec);
/*========================================================================*/
if(Debug_Flag)
printf ("\nFinished distributing load balance info\n");
/* Output Detailed timing information for the progam */
/*
* Print out a Large table of Load Balance Information if the debug_flag
* setting is large enough
*/
if(Debug_Flag >= 7) {
printf ("\n\n");
print_line ("=", 79);
for (int iproc=0; iproc <Proc_Info[2]; iproc++) {
printf("\n\t***For Processor %d***\n", Proc_Ids[iproc]);
printf("\tInternal nodes owned by the current processor\n\t");
开发者ID:gitter-badger,项目名称:quinoa,代码行数:67,代码来源:pe_load_lb_info.C
|
请发表评论