您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ IF_FREE函数代码示例

51自学网 2021-06-01 21:28:46
  C++
这篇教程C++ IF_FREE函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中IF_FREE函数的典型用法代码示例。如果您正苦于以下问题:C++ IF_FREE函数的具体用法?C++ IF_FREE怎么用?C++ IF_FREE使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了IF_FREE函数的24个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: _mp_app_inotify_add_recursive_watch

void_mp_app_inotify_add_recursive_watch(const char *path, void *ad){	DIR *dp = NULL;	struct dirent *entry = NULL;	char *sub_path = NULL;	sub_path = strdup(path);	if (mp_app_inotify_add_watch(sub_path, _mp_app_inotify_cb, ad) < 0)	{		IF_FREE(sub_path);		return;	}	dp = opendir(sub_path);	if (dp == NULL)		return;	while ((entry = (struct dirent *)readdir(dp)) != NULL)	{		if (entry->d_name[0] == '.')			continue;		IF_FREE(sub_path);		sub_path = g_strdup_printf("%s/%s", path, entry->d_name);		if (entry->d_type == DT_DIR)			_mp_app_inotify_add_recursive_watch(sub_path, ad);	}	IF_FREE(sub_path);	closedir(dp);}
开发者ID:minjinsong,项目名称:tizen-music-player,代码行数:33,


示例2: ecore_exe_event_data_free

EAPI voidecore_exe_event_data_free(Ecore_Exe_Event_Data *e){   if (!e) return;   IF_FREE(e->lines);   IF_FREE(e->data);   free(e);}
开发者ID:Limsik,项目名称:e17,代码行数:8,


示例3: engrave_data_free

/** * engrave_data_free - free the given data block * @param ed: The Engrave_Data to free * * @return Returns no value. */EAPI voidengrave_data_free(Engrave_Data *ed){  if (!ed) return;  IF_FREE(ed->key);  IF_FREE(ed->value);  FREE(ed);}
开发者ID:playya,项目名称:Enlightenment,代码行数:15,


示例4: project_close

/** * close the current project */static voidproject_close( Ewler_Project *p ){	IF_FREE(p->name);	IF_FREE(p->path);	IF_FREE(p->filename);	ecore_hash_destroy(p->files);	FREE(p);}
开发者ID:playya,项目名称:Enlightenment,代码行数:13,


示例5: _exml_node_destroy

static void _exml_node_destroy( void *data ){	EXML_Node *node = data;	if (node) {		ecore_hash_destroy(node->attributes);		IF_FREE(node->tag);		IF_FREE(node->value);		ecore_list_destroy(node->children);		FREE(node);	}}
开发者ID:playya,项目名称:Enlightenment,代码行数:13,


示例6: startNode

void CViewSourceHTML::WriteTextInElement(const nsAString& tagName,                                          eHTMLTags tagType, const nsAString& text,                                         nsTokenAllocator* allocator,                                         const nsAString& attrName,                                          const nsAString& attrValue) {  // Open the element, supplying the attribute, if any.  nsTokenAllocator* theAllocator = mTokenizer->GetTokenAllocator();  if (!theAllocator) {    return;  }  CStartToken* startToken =    static_cast<CStartToken*>      (theAllocator->CreateTokenOfType(eToken_start, tagType, tagName));  if (!startToken) {    return;  }  nsCParserStartNode startNode(startToken, theAllocator);  if (!attrName.IsEmpty()) {    AddAttrToNode(startNode, allocator, attrName, attrValue);  }  mSink->OpenContainer(startNode);  IF_FREE(startToken, theAllocator);  // Add the text node.  CTextToken textToken(text);  nsCParserNode textNode(&textToken, 0/*stack token*/);  mSink->AddLeaf(textNode);  // Close the element.  mSink->CloseContainer(tagType);}
开发者ID:amyvmiwei,项目名称:firefox,代码行数:33,


示例7: engrave_data_value_set

/** * engrave_data_value_set - set the value of the data object * @param ed: The Engrave_Data to set the value into * @param value: The value to set. *  * @return Returns no value. */EAPI voidengrave_data_value_set(Engrave_Data *ed, const char *value){    if (!ed) return;    IF_FREE(ed->value);    ed->value = (value ? strdup(value) : NULL);}
开发者ID:playya,项目名称:Enlightenment,代码行数:14,


示例8: endToken

/** * Call this to start a new PRE block.  See bug 86355 for why this * makes some pages much faster. */void CViewSourceHTML::StartNewPreBlock(void){  CEndToken endToken(eHTMLTag_pre);  nsCParserNode endNode(&endToken, 0/*stack token*/);  mSink->CloseContainer(eHTMLTag_pre);  nsTokenAllocator* theAllocator = mTokenizer->GetTokenAllocator();  if (!theAllocator) {    return;  }  CStartToken* theToken =    static_cast<CStartToken*>               (theAllocator->CreateTokenOfType(eToken_start,                                                   eHTMLTag_pre,                                                   NS_LITERAL_STRING("PRE")));  if (!theToken) {    return;  }  nsCParserStartNode startNode(theToken, theAllocator);  AddAttrToNode(startNode, theAllocator,                NS_LITERAL_STRING("id"),                NS_ConvertASCIItoUTF16(nsPrintfCString("line%d", mLineNumber)));  mSink->OpenContainer(startNode);  IF_FREE(theToken, theAllocator);#ifdef DUMP_TO_FILE  if (gDumpFile) {    fprintf(gDumpFile, "</pre>/n");    fprintf(gDumpFile, "<pre id=/"line%d/">/n", mLineNumber);  }#endif // DUMP_TO_FILE  mTokenCount = 0;}
开发者ID:amyvmiwei,项目名称:firefox,代码行数:39,


示例9: IF_FREE

/** * This method is called just after a known text char has * been consumed and we should read a text run. Note: we actually ignore the * first character of the text run so that we can consume invalid markup  * as text. *   * @param aToken The OUT parameter that holds our resulting token. * @param aScanner Our source of data * @return Error result. */ nsresultnsHTMLTokenizer::ConsumeText(CToken*& aToken, nsScanner& aScanner){  nsresult result = NS_OK;  nsTokenAllocator* theAllocator = this->GetTokenAllocator();  CTextToken* theToken =    (CTextToken*)theAllocator->CreateTokenOfType(eToken_text, eHTMLTag_text);  if (theToken) {    PRUnichar ch = '/0';    result = theToken->Consume(ch, aScanner, mFlags);    if (NS_FAILED(result)) {      if (0 == theToken->GetTextLength()) {        IF_FREE(aToken, mTokenAllocator);        aToken = nullptr;      } else {        result = NS_OK;      }    }    aToken = theToken;    AddToken(aToken, result, &mTokenDeque, theAllocator);  }  return result;}
开发者ID:AshishNamdev,项目名称:mozilla-central,代码行数:35,


示例10: sp_view_mgr_pop_view_content

voidsp_view_mgr_pop_view_content(Sp_View_Manager *view_mgr, bool pop_to_first){	startfunc;	MP_CHECK(view_mgr);	MP_CHECK(view_mgr->navi);	GList *last = g_list_last(view_mgr->view_history);	MP_CHECK(last);	Sp_View_Data *view_data = last->data;	MP_CHECK(view_data);	if (pop_to_first) {		Elm_Object_Item *bottom_item = elm_naviframe_bottom_item_get(view_mgr->navi);		if (bottom_item)			elm_naviframe_item_pop_to(bottom_item);		while(view_data && view_data->index > 0) {			SAFE_FREE(view_data);			view_mgr->view_history = g_list_delete_link(view_mgr->view_history, last);			last = g_list_last(view_mgr->view_history);			if (last)				view_data = last->data;		}	} else {		elm_naviframe_item_pop(view_mgr->navi);		IF_FREE(view_data);		view_mgr->view_history = g_list_delete_link(view_mgr->view_history, last);	}	if (g_list_length(view_mgr->view_history) == 0) {		g_list_free(view_mgr->view_history);		view_mgr->view_history = NULL;	}}
开发者ID:minjinsong,项目名称:tizen-music-player,代码行数:35,


示例11: IF_FREE

/** Release all the objects you're holding to. * @update	harishd 08/02/00 * @return  void */nsresult nsCParserNode::ReleaseAll() {  if(mTokenAllocator) {    IF_FREE(mToken,mTokenAllocator);  }  return NS_OK;}
开发者ID:lofter2011,项目名称:Icefox,代码行数:12,


示例12: fg_part_up

voidfg_part_up( void *data, Evas_Object *o,						const char *emission, const char *source ){	Ewler_Widget *w = data;	IF_FREE(w->source);}
开发者ID:playya,项目名称:Enlightenment,代码行数:8,


示例13: NS_ASSERTION

nsresult nsCParserStartNode::ReleaseAll() {  NS_ASSERTION(0!=mTokenAllocator, "Error: no token allocator");  CToken* theAttrToken;  while ((theAttrToken = static_cast<CToken*>(mAttributes.Pop()))) {    IF_FREE(theAttrToken, mTokenAllocator);  }  nsCParserNode::ReleaseAll();  return NS_OK; }
开发者ID:lofter2011,项目名称:Icefox,代码行数:10,


示例14: ewl_dvi_file_set

/** * @param dvi: the dvi widget to change the displayed dvi * @param filename: the path to the new dvi to be displayed by @a dvi * @return Returns no value. * @brief Change the dvi file displayed by an dvi widget * * Set the dvi displayed by @a dvi to the one found at the path @a filename. If an * edje is used, a minimum size should be specified in the edje or the code. */intewl_dvi_file_set(Ewl_Dvi *dvi, const char *filename){        Ewl_Widget *w;        Ewl_Embed *emb;        DENTER_FUNCTION(DLEVEL_STABLE);        DCHECK_PARAM_PTR_RET(dvi, FALSE);        DCHECK_TYPE(dvi, EWL_DVI_TYPE);        w = EWL_WIDGET(dvi);        emb = ewl_embed_widget_find(w);        if (!filename || (filename[0] == '/0'))                DRETURN_INT(FALSE, DLEVEL_STABLE);        if (dvi->filename != filename) {                IF_FREE(dvi->filename);        }        if (dvi->dvi_page) {                edvi_page_delete(dvi->dvi_page);                dvi->dvi_page = NULL;        }        if (dvi->dvi_document) {                edvi_document_delete(dvi->dvi_document);                dvi->dvi_document = NULL;        }        dvi->filename = strdup(filename);        /*         * Load the new dvi if widget has been realized         */        dvi->dvi_document = edvi_document_new(dvi->filename, dvi->dvi_device, dvi->dvi_property);        if (!dvi->dvi_document)                DRETURN_INT(FALSE, DLEVEL_STABLE);        dvi->dvi_page = edvi_page_new(dvi->dvi_document);        if (!dvi->dvi_page) {                edvi_document_delete(dvi->dvi_document);                dvi->dvi_document = NULL;                DRETURN_INT(FALSE, DLEVEL_STABLE);        }        if (REALIZED(w)) {                ewl_widget_obscure(w);                ewl_widget_reveal(w);        }        DRETURN_INT(TRUE, DLEVEL_STABLE);}
开发者ID:Limsik,项目名称:e17,代码行数:63,


示例15: sp_view_mgr_destroy

voidsp_view_mgr_destroy(Sp_View_Manager* view_mgr){	startfunc;	MP_CHECK(view_mgr);	if (view_mgr->view_history) {		GList *current = view_mgr->view_history;		while(current) {			IF_FREE(current->data);			current = current->next;		}		g_list_free(view_mgr->view_history);		view_mgr->view_history = NULL;	}	IF_FREE(view_mgr);}
开发者ID:minjinsong,项目名称:tizen-music-player,代码行数:20,


示例16: NS_ENSURE_TRUE

/** * This method consumes an end tag and any "attributes" that may come after it. * * @param aChar The last character read from the scanner. * @param aToken The OUT parameter that holds our resulting token. * @param aScanner Our source of data * @return Error result */nsresultnsHTMLTokenizer::ConsumeEndTag(PRUnichar aChar,                               CToken*& aToken,                               nsScanner& aScanner){  // Get the "/" (we've already seen it with a Peek)  aScanner.GetChar(aChar);  nsTokenAllocator* theAllocator = this->GetTokenAllocator();  aToken = theAllocator->CreateTokenOfType(eToken_end, eHTMLTag_unknown);  NS_ENSURE_TRUE(aToken, NS_ERROR_OUT_OF_MEMORY);  // Remember this for later in case you have to unwind...  int32_t theDequeSize = mTokenDeque.GetSize();  nsresult result = NS_OK;  // Tell the new token to finish consuming text...  result = aToken->Consume(aChar, aScanner, mFlags);  AddToken(aToken, result, &mTokenDeque, theAllocator);  if (NS_FAILED(result)) {    // Note that this early-return here is safe because we have not yet    // added any of our tokens to the queue (AddToken only adds the token if    // result is a success), so we don't need to fall through.    return result;  }  result = aScanner.Peek(aChar);  if (NS_FAILED(result)) {    aToken->SetInError(true);    // Note: We know here that the scanner is not incremental since if    // this peek fails, then we've already masked over a kEOF coming from    // the Consume() call above.    return NS_OK;  }  if (kGreaterThan != aChar) {    result = ConsumeAttributes(aChar, aToken, aScanner);  } else {    aScanner.GetChar(aChar);  }  // Do the same thing as we do in ConsumeStartTag. Basically, if we've run  // out of room in this *section* of the document, pop all of the tokens  // we've consumed this round and wait for more data.  if (NS_FAILED(result)) {    while (mTokenDeque.GetSize() > theDequeSize) {      CToken* theToken = (CToken*)mTokenDeque.Pop();      IF_FREE(theToken, mTokenAllocator);    }  }  return result;}
开发者ID:AshishNamdev,项目名称:mozilla-central,代码行数:62,


示例17: ewl_icon_theme_cb_free

static voidewl_icon_theme_cb_free(void *data){        DENTER_FUNCTION(DLEVEL_STABLE);        if (data == EWL_THEME_KEY_NOMATCH)                DRETURN(DLEVEL_STABLE);        IF_FREE(data);        DLEAVE_FUNCTION(DLEVEL_STABLE);}
开发者ID:playya,项目名称:Enlightenment,代码行数:12,


示例18: elicit_free

voidelicit_free(Elicit *el){  elicit_magnify_stop(el);  if (el->color)    color_unref(el->color);  if (el->obj.main)    evas_object_del(el->obj.main);  if (el->obj.shot)    evas_object_del(el->obj.shot);  if (el->obj.swatch)    evas_object_del(el->obj.swatch);  if (el->ee)    ecore_evas_free(el->ee);  if (el->band)    elicit_band_free(el->band);  if (el->palette)    palette_free(el->palette);  IF_FREE(el->conf.theme);  IF_FREE(el->path.theme);  IF_FREE(el->path.datadir);  IF_FREE(el->path.confdir);  IF_FREE(el->path.palette);  IF_FREE(el->path.conffile);  free(el);}
开发者ID:rephorm,项目名称:elicit,代码行数:35,


示例19: egxp_opcode_free

void egxp_opcode_free (Egxp_Opcode * op) {#ifdef EGXP_DEBUG  printf("TRACE: egxp_opcode_free/n");#endif  assert (op);    /* free only the initial pointer */  IF_FREE (op->id_string);  // static string, so it's forbidden to destroy if (op->id_string) free (op->id_string);  ecore_hash_destroy (op->string_id);  FREE (op);}
开发者ID:BackupTheBerlios,项目名称:eim-svn,代码行数:13,


示例20: exml_tag_set

/** * Set the current tag name * @param   xml The xml document to modify * @param   tag The new tag name * @return  @c TRUE if successful, @c FALSE if an error occurs. * @ingroup EXML_Modfiy_Element_Group */int exml_tag_set(EXML *xml, char *tag){	CHECK_PARAM_POINTER_RETURN("xml", xml, FALSE);	CHECK_PARAM_POINTER_RETURN("tag", tag, FALSE);	IF_FREE(xml->current->tag);	xml->current->tag = strdup( tag );	if (!xml->current->tag)		return FALSE;	return TRUE;}
开发者ID:playya,项目名称:Enlightenment,代码行数:20,


示例21: exml_value_set

/** * Set the current tag value * @param   xml The xml document to modify * @param   value The new value name * @return  @c TRUE if successful, @c FALSE if an error occurs. * @ingroup EXML_Modfiy_Element_Group */int exml_value_set(EXML *xml, char *value){	CHECK_PARAM_POINTER_RETURN("xml", xml, FALSE);	CHECK_PARAM_POINTER_RETURN("value", value, FALSE);	IF_FREE(xml->current->value);	xml->current->value = strdup( value );	if (!xml->current->value)		return FALSE;	return TRUE;}
开发者ID:playya,项目名称:Enlightenment,代码行数:20,


示例22: efreet_desktop_save_as

EAPI intefreet_desktop_save_as(Efreet_Desktop *desktop, const char *file){    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, 0);    EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0);    /* If we save data from eet as new, we will be in trouble */    if (desktop->eet) return 0;    IF_FREE(desktop->orig_path);    desktop->orig_path = strdup(file);    return efreet_desktop_save(desktop);}
开发者ID:Limsik,项目名称:e17,代码行数:13,


示例23: ewl_ps_file_set

/** * @param ps: the ps widget to change the displayed ps * @param filename: the path to the new postscript file to be displayed by @a ps * @return 0 on failure, 1 otherwise. * @brief Change the postscript file displayed by a ps widget * * Set the postscript file displayed by @a ps to the one found at the path * @a filename. */intewl_ps_file_set(Ewl_Ps *ps, const char *filename){        Ewl_Widget *w;        DENTER_FUNCTION(DLEVEL_STABLE);        DCHECK_PARAM_PTR_RET(ps, FALSE);        DCHECK_TYPE(ps, EWL_PS_TYPE);        w = EWL_WIDGET(ps);        if (ps->filename != filename) {                IF_FREE(ps->filename);        }        if (!filename || (filename[0] == '/0'))                DRETURN_INT(FALSE, DLEVEL_STABLE);        if (ps->ps_page) {                eps_page_delete(ps->ps_page);                ps->ps_page = NULL;        }        if (ps->ps_document) {                eps_document_delete(ps->ps_document);                ps->ps_document = NULL;        }        ps->filename = strdup(filename);        /*         * Load the new Postscript document         */        ps->ps_document = eps_document_new(filename);        if (!ps->ps_document)                DRETURN_INT(FALSE, DLEVEL_STABLE);        ps->ps_page = eps_page_new(ps->ps_document);        if (!ps->ps_page) {                eps_document_delete(ps->ps_document);                ps->ps_document = NULL;                DRETURN_INT(FALSE, DLEVEL_STABLE);        }        if (REALIZED(w)) {                ewl_widget_unrealize(w);                ewl_widget_reveal(w);        }        DRETURN_INT(TRUE, DLEVEL_STABLE);}
开发者ID:Limsik,项目名称:e17,代码行数:60,


示例24: EWL_CALLBACK_DEFN

/** * callback for project options dialog */static EWL_CALLBACK_DEFN(options_cb){	int *response_id = ev_data;	if( *response_id == EWL_RESPONSE_SAVE ) {		IF_FREE(active_project->path);		active_project->path =			ewl_text_text_get(EWL_TEXT(active_project_options.path_entry));		IF_FREE(active_project->name);		active_project->name =			ewl_text_text_get(EWL_TEXT(active_project_options.name_entry));		IF_FREE(active_project->filename);		active_project->filename =			ewl_text_text_get(EWL_TEXT(active_project_options.filename_entry));		active_project->dirty = true;	}	ewl_widget_destroy(options_win);	options_win = NULL;}
开发者ID:playya,项目名称:Enlightenment,代码行数:26,



注:本文中的IF_FREE函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ IF_NAME函数代码示例
C++ IF_DEQUEUE函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。