Example #1
0
void rfree(void* x) {
  if ((x != NIL) &&
      (x != TRUE) &&
      (x != FALSE) &&
      (x != NULL)) {
    switch(type(x)) {
    case SPECIAL:
      /* can't be freed */
      return;
    case FUNCTION:
      /* TODO */
      return;
    case INT:
      /* no members to free */
      break;
    case SYMBOL:
      free(SVAL(x));
      break;
    case CONS:
      rfree(CAR(x));
      rfree(CDR(x));
      break;
    }
    free(x);
  }
}
Example #2
0
 const Choice*
 Space::choice(void) {
   if (!stable())
     throw SpaceNotStable("Space::choice");
   if (failed() || (b_status == Brancher::cast(&bl))) {
     // There are no more choices to be generated
     // Delete all branchers
     Brancher* b = Brancher::cast(bl.next()); 
     while (b != Brancher::cast(&bl)) {
       Brancher* d = b;
       b = Brancher::cast(b->next());
       rfree(d,d->dispose(*this));
     }
     bl.init();
     b_status = b_commit = Brancher::cast(&bl);
     return NULL;
   }
   /*
    * The call to choice() says that no older choices
    * can be used. Hence, all branchers that are exhausted can be deleted.
    */
   Brancher* b = Brancher::cast(bl.next());
   while (b != b_status) {
     Brancher* d = b;
     b = Brancher::cast(b->next());
     d->unlink();
     rfree(d,d->dispose(*this));
   }
   // Make sure that b_commit does not point to a deleted brancher!
   b_commit = b_status;
   return b_status->choice(*this);
 }
Example #3
0
/**
 * \brief Frees selector component.
 * \param[in,out] dev Selector base component device.
 */
static void selector_free(struct comp_dev *dev)
{
	struct comp_data *cd = comp_get_drvdata(dev);

	trace_selector("selector_free()");

	rfree(cd);
	rfree(dev);
}
Example #4
0
static void test_keyword_free(struct comp_dev *dev)
{
	struct comp_data *cd = comp_get_drvdata(dev);

	trace_keyword("test_keyword_free()");

	free_mem_load(cd);
	rfree(cd);
	rfree(dev);
}
Example #5
0
static rpmfcAttr rpmfcAttrFree(rpmfcAttr attr)
{
    if (attr) {
	ruleFree(&attr->incl);
	ruleFree(&attr->excl);
	rfree(attr->name);
	rfree(attr);
    }
    return NULL;
}
Example #6
0
BOOL DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
		case WM_CLOSE:
		{
			SelectObject(g_hdc, g_hbmpOld);
			DeleteObject(g_hbmp);
			DeleteDC(g_hdc);
			EndDialog(hDlg, 0);
			break;
		}
		case WM_INITDIALOG:
		{
			int i;
			t_region *region, *rgnExclude = NULL, *rgnNew;

			g_hdc = CreateCompatibleDC(NULL);
			g_hbmp = CreateCompatibleBitmap(GetDC(NULL), 640, 480);
			g_hbmpOld = SelectObject(g_hdc, g_hbmp);
			region = create_rect_region(g_rcInclude.left, g_rcInclude.top, g_rcInclude.right, g_rcInclude.bottom);
			for (i=0;i<EXCLUDES;i++)
				 rgnExclude = append_regions(rgnExclude, create_rect_region(g_rcExclude[i].left, g_rcExclude[i].top, g_rcExclude[i].right, g_rcExclude[i].bottom));

			rgnNew = difference_regions(region, rgnExclude);
			rfree(&region);
			rfree(&rgnExclude);
			region = rgnNew;
			while (region)
			{
				Rectangle(g_hdc, region->rcRegion.left, region->rcRegion.top, region->rcRegion.right, region->rcRegion.bottom);
				region = region->next;
			}

			rfree(&rgnNew);
			SendMessage(hDlg, WM_SETTEXT, 0, (LPARAM)"Region Test");
			break;
		}
		case WM_PAINT:
		{
			PAINTSTRUCT ps;

			BeginPaint(hDlg, &ps);
			BitBlt(ps.hdc, ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right - ps.rcPaint.left, ps.rcPaint.bottom - ps.rcPaint.top, g_hdc, ps.rcPaint.left, ps.rcPaint.top, SRCCOPY);
			EndPaint(hDlg, &ps);
			break;
		}
		default:
			return FALSE;

	}

	return TRUE;
}
void ferite_classic_free( void *targetptr, char *file, int line, FeriteScript *script )
{
#ifdef FERITE_MEM_DEBUG
    struct ferite_memory_block *ptr, *temp_ptr;
    
    if( targetptr == NULL )
        printf( "Trying to free NULL ptr on %s:%d\n", file, line );
    
    LOCK_MEMORY;
    for( ptr = mem_rootblk; ptr->next != NULL; ptr = ptr->next )
    {
        if( ptr->next->data == targetptr )
        {
# ifdef SUPER_VERBOSE
            FUD(("INFO: Found memory block (%p). Freeing.\n", ptr->next->data));
# endif
            ferite_classic_free_count++;
            
            temp_ptr = ptr->next;
            ptr->next = temp_ptr->next;
# ifdef SUPER_VERBOSE
            FUD(("INFO: Freeing %p\n", temp_ptr->data ));
# endif
            rfree( temp_ptr->data );
# ifdef SUPER_VERBOSE
            FUD(("  * Free'd data\n"));
# endif
            free( temp_ptr->file );
# ifdef SUPER_VERBOSE
            FUD(("  * Free'd filename\n"));
# endif
            free( temp_ptr );
# ifdef SUPER_VERBOSE
            FUD(("  * Free'd memory block\n"));
# endif
            
            UNLOCK_MEMORY;
            return;
        }
    }
    FUD(("* URGH. Can't find block(%p) in memory list. Freeing Anyways.\n", targetptr));
    free( targetptr );
    UNLOCK_MEMORY;
#else
    LOCK_MEMORY;
    if( targetptr == NULL )
        printf( "Trying to free null in %s at %d\n", file, line );
    else
        ferite_classic_free_count++;
    rfree( targetptr );
    UNLOCK_MEMORY;
#endif
}
Example #8
0
/**
 * \brief Creates selector component.
 * \param[in,out] data Selector base component device.
 * \return Pointer to selector base component device.
 */
static struct comp_dev *selector_new(struct sof_ipc_comp *comp)
{
	struct sof_ipc_comp_process *ipc_process =
		(struct sof_ipc_comp_process *)comp;
	size_t bs = ipc_process->size;
	struct comp_dev *dev;
	struct comp_data *cd;
	int ret;

	trace_selector("selector_new()");

	if (IPC_IS_SIZE_INVALID(ipc_process->config)) {
		IPC_SIZE_ERROR_TRACE(TRACE_CLASS_SELECTOR, ipc_process->config);
		return NULL;
	}

	dev = rzalloc(RZONE_RUNTIME, SOF_MEM_CAPS_RAM,
		      COMP_SIZE(struct sof_ipc_comp_process));
	if (!dev)
		return NULL;

	assert(!memcpy_s(&dev->comp, sizeof(struct sof_ipc_comp_process), comp,
			 sizeof(struct sof_ipc_comp_process)));

	cd = rzalloc(RZONE_RUNTIME, SOF_MEM_CAPS_RAM, sizeof(*cd));
	if (!cd) {
		rfree(dev);
		return NULL;
	}

	comp_set_drvdata(dev, cd);

	assert(!memcpy_s(&cd->config, sizeof(cd->config), ipc_process->data,
			 bs));

	/* verification of initial parameters */
	ret = sel_set_channel_values(cd, cd->config.in_channels_count,
				     cd->config.out_channels_count,
				     cd->config.sel_channel);
	if (ret < 0) {
		rfree(cd);
		rfree(dev);
		return NULL;
	}

	dev->state = COMP_STATE_READY;
	return dev;
}
Example #9
0
/**
 @brief    密行列AをHessenberg型行列Bに相似変換する.
 @param[in]  n    正方行列A,Bのサイズ
 @param[in]  A    行列
 @param[in]  LDA  Aの第1次元
 @param[out] B    相似変換により得られたHessenberg型行列
 @param[in]  LDB  Bの第1次元
 */
void chsnbrg_simtr(int n, cmulti **B, int LDB, cmulti **A, int LDA)
{
  int i,prec=53;
  rmulti *alpha=NULL;
  cmulti **h=NULL;
  // allocate
  prec=cmat_get_prec_max(n,n,B,LDB);
  alpha=rallocate_prec(prec);
  h=cvec_allocate_prec(n,prec);
  // copy
  cmat_copy(n,n,B,LDB,A,LDA);
  // compute
  for(i=0; i<n-2; i++){
    // Householder vector
    chouseholder_vec(n,i+1,h,alpha,&COL(B,i,LDB));
    // similarity transformation
    chouseholder_right(n,n,B,LDB,B,LDB,i+1,h,alpha);
    chouseholder_left(n,n,B,LDB,B,LDB,i+1,h,alpha);
    // set lower part as zeros
    cvec_set_zeros(n-2-i,&MAT(B,i+2,i,LDB));
  }
  // done
  alpha=rfree(alpha);
  h=cvec_free(n,h);
}
Example #10
0
File: bgp.c Project: rogerhu/dd-wrt
/**
 * bgp_close - close a BGP instance
 * @p: BGP instance
 * @apply_md5: 0 to disable unsetting MD5 auth
 *
 * This function frees and deconfigures shared BGP resources.
 * @apply_md5 is set to 0 when bgp_close is called as a cleanup
 * from failed bgp_open().
 */
static void
bgp_close(struct bgp_proto *p, int apply_md5)
{
    ASSERT(bgp_counter);
    bgp_counter--;

    if (p->cf->password && apply_md5)
        sk_set_md5_auth(bgp_listen_sk, p->cf->remote_ip, p->cf->iface, NULL);

    if (!bgp_counter)
    {
        rfree(bgp_listen_sk);
        bgp_listen_sk = NULL;
        rfree(bgp_linpool);
        bgp_linpool = NULL;
    }
}
Example #11
0
/**
 @brief ハウスホルダー・ベクトルへの変換.
 @details h[0]=0; ...; h[k-1]=0; h[k]=-s*xi; h[k+1]=x[k+1]; ...; h[n-1]=x[n-1];
 @param[in]  h 初期化済みのベクトル.サイズはn.
 @param[in]  x 初期化済みのベクトル.サイズはn.
 @param[in]  n ベクトルのサイズ.
 @param[in]  k 第k要素が基準.
 @param[out] h ハウスホルダー・ベクトル.
 */
void rhouseholder_vec(int n, int k, rmulti **h, rmulti *alpha, rmulti **x)
{
  int p0,p1,prec;
  rmulti *eta=NULL,*zeta=NULL,*xi=NULL,*axk=NULL;
  // allocate
  p0=rget_prec(alpha);
  p1=rvec_get_prec_max(n,h);
  prec=MAX2(p0,p1);
  eta=rallocate_prec(prec);
  zeta=rallocate_prec(prec);
  xi=rallocate_prec(prec);
  axk=rallocate_prec(prec);
  //----------- norm
  rvec_sum_pow2(xi,n-k-1,&x[k+1]);    // xi=sum(abs(x((k+1):end)).^2);
  rmul(axk,x[k],x[k]);                // axk=|x[k]|^2
  radd(eta,axk,xi);                   // eta=|x[k]|^2+...
  rsqrt(axk,axk);                     // axk=|x[k]|
  rsqrt(eta,eta);                     // eta=sqrt(|x[k]|^2+...)
  if(req_d(eta,0)){rsub(xi,eta,axk);} // xi=eta-|x(k)|
  else{                               // xi=xi/(|x(k)|+eta)
    radd(zeta,axk,eta);
    rdiv(xi,xi,zeta);
  }
  //----------- h
  rvec_set_zeros(k,h);
  rvec_copy(n-k-1,&h[k+1],&x[k+1]);     // h((k+1):end)=x((k+1):end);
  if(ris_zero(x[k])){
    rcopy(h[k],xi); rneg(h[k],h[k]);    // h[k]=-xi
  }else{
    rdiv(zeta,xi,axk); rneg(zeta,zeta); // zeta=-xi/axk;
    rmul(h[k],x[k],zeta);               // h[k]=zeta*x[k];
  }
  //----------- alpha
  if(req_d(xi,0) || req_d(eta,0)){
    rset_d(alpha,0);
  }else{
    rmul(alpha,xi,eta);                 // alpha=1/(xi*eta)
    rinv(alpha,alpha);
  }
  // free
  eta=rfree(eta);
  zeta=rfree(zeta);
  xi=rfree(xi);
  axk=rfree(axk);
}
Example #12
0
File: bgp.c Project: rogerhu/dd-wrt
/**
 * bgp_close_conn - close a BGP connection
 * @conn: connection to close
 *
 * This function takes a connection described by the &bgp_conn structure,
 * closes its socket and frees all resources associated with it.
 */
void
bgp_close_conn(struct bgp_conn *conn)
{
    // struct bgp_proto *p = conn->bgp;

    DBG("BGP: Closing connection\n");
    conn->packets_to_send = 0;
    rfree(conn->connect_retry_timer);
    conn->connect_retry_timer = NULL;
    rfree(conn->keepalive_timer);
    conn->keepalive_timer = NULL;
    rfree(conn->hold_timer);
    conn->hold_timer = NULL;
    rfree(conn->sk);
    conn->sk = NULL;
    rfree(conn->tx_ev);
    conn->tx_ev = NULL;
}
Example #13
0
static int TestSingleMatch()
{
	regex* re = regex_create("a", NULL);
	program* prog = &(re->prog);
	mu_assert("program length", prog->size ==  2);
	mu_assert("first inst is rule", prog->code[0].op == I_CHAR);
	mu_assert("second inst is match", prog->code[1].op == I_MATCH);
	rfree(re);
	return 1;
}
Example #14
0
void EvalCcRqGETFONTSIZES (CrossCallInfo *pcci)		// textptr; no result.
{
	HDC hdc;

	hdc = GetDC (ghMainWindow);
	EnumFontFamilies (hdc, (char *) pcci->p1, (FONTENUMPROC) EnumFontSizeProc, 0);
	ReleaseDC (ghMainWindow, hdc);
	rfree ((char *) pcci->p1);
	MakeReturn0Cci (pcci);
}
Example #15
0
static int TestConcat()
{
	regex* re = regex_create("ab", NULL);
	program* prog = &(re->prog);
	mu_assert("program length", prog->size ==  3);
	mu_assert("first inst is split", prog->code[0].op == I_CHAR);
	mu_assert("second inst is rule", prog->code[1].op == I_CHAR);
	mu_assert("third inst is match", prog->code[2].op == I_MATCH);
	rfree(re);
	return 1;
}
Example #16
0
static void free_mem_load(struct comp_data *cd)
{
	if (!cd) {
		trace_keyword_error("free_mem_load() error: invalid cd");
		return;
	}

	if (cd->load_memory) {
		rfree(cd->load_memory);
		cd->load_memory = NULL;
	}
}
Example #17
0
File: bgp.c Project: deepfield/bird
/**
 * bgp_incoming_connection - handle an incoming connection
 * @sk: TCP socket
 * @dummy: unused
 *
 * This function serves as a socket hook for accepting of new BGP
 * connections. It searches a BGP instance corresponding to the peer
 * which has connected and if such an instance exists, it creates a
 * &bgp_conn structure, attaches it to the instance and either sends
 * an Open message or (if there already is an active connection) it
 * closes the new connection by sending a Notification message.
 */
static int
bgp_incoming_connection(sock *sk, int dummy UNUSED)
{
  struct proto_config *pc;

  DBG("BGP: Incoming connection from %I port %d\n", sk->daddr, sk->dport);
  WALK_LIST(pc, config->protos)
    if (pc->protocol == &proto_bgp && pc->proto)
      {
	struct bgp_proto *p = (struct bgp_proto *) pc->proto;
	if (ipa_equal(p->cf->remote_ip, sk->daddr) &&
	    (!ipa_has_link_scope(sk->daddr) || (p->cf->iface == sk->iface)))
	  {
	    /* We are in proper state and there is no other incoming connection */
	    int acc = (p->p.proto_state == PS_START || p->p.proto_state == PS_UP) &&
	      (p->start_state >= BSS_CONNECT) && (!p->incoming_conn.sk);

	    if (p->conn && (p->conn->state == BS_ESTABLISHED) && p->gr_ready)
	    {
	      bgp_store_error(p, NULL, BE_MISC, BEM_GRACEFUL_RESTART);
	      bgp_handle_graceful_restart(p);
	      bgp_conn_enter_idle_state(p->conn);
	      acc = 1;
	    }

	    BGP_TRACE(D_EVENTS, "Incoming connection from %I%J (port %d) %s",
		      sk->daddr, ipa_has_link_scope(sk->daddr) ? sk->iface : NULL,
		      sk->dport, acc ? "accepted" : "rejected");

	    if (!acc)
	      goto reject;

	    int hops = p->cf->multihop ? : 1;

	    if (sk_set_ttl(sk, p->cf->ttl_security ? 255 : hops) < 0)
	      goto err;

	    if (p->cf->ttl_security)
	      if (sk_set_min_ttl(sk, 256 - hops) < 0)
		goto err;

	    bgp_setup_conn(p, &p->incoming_conn);
	    bgp_setup_sk(&p->incoming_conn, sk);
	    bgp_send_open(&p->incoming_conn);
	    return 0;

	  err:
	    sk_log_error(sk, p->p.name);
	    log(L_ERR "%s: Incoming connection aborted", p->p.name);
	    rfree(sk);
	    return 0;
	  }
      }
Example #18
0
    void solveSudoku(vector<vector<char> > &board) {
		vector<vector<bool> >rfree(9, vector<bool>(9, true));	
		vector<vector<bool> >cfree(9, vector<bool>(9, true));	
		vector<vector<bool> >sfree(9, vector<bool>(9, true));
		
		vector<int> ei;
		vector<int> ej;
		// init
		init(board, rfree, cfree, sfree, ei, ej);
		int size = ei.size();
		helper(board, rfree, cfree, sfree, ei, ej, 0, size-1);
    }
Example #19
0
static int TestStar()
{
	regex* re = regex_create("a*", NULL);
	program* prog = &(re->prog);
	mu_assert("program length", prog->size ==  4);
	mu_assert("first inst is split", prog->code[0].op == I_SPLIT);
	mu_assert("second inst is rule", prog->code[1].op == I_CHAR);
	mu_assert("third inst is jmp", prog->code[2].op == I_JMP);
	mu_assert("final inst is match", prog->code[3].op == I_MATCH);
	rfree(re);
	return 1;
}
Example #20
0
static void processVerDef(Elf_Scn *scn, GElf_Shdr *shdr, elfInfo *ei)
{
    Elf_Data *data = NULL;
    unsigned int offset, auxoffset;
    char *soname = NULL;

    while ((data = elf_getdata(scn, data)) != NULL) {
	offset = 0;

	for (int i = shdr->sh_info; --i >= 0; ) {
	    GElf_Verdef def_mem, *def;
	    def = gelf_getverdef (data, offset, &def_mem);
	    if (def == NULL)
		break;
	    auxoffset = offset + def->vd_aux;
	    offset += def->vd_next;

	    for (int j = def->vd_cnt; --j >= 0; ) {
		GElf_Verdaux aux_mem, * aux;
		const char *s;
		aux = gelf_getverdaux (data, auxoffset, &aux_mem);
		if (aux == NULL)
		    break;
		s = elf_strptr(ei->elf, shdr->sh_link, aux->vda_name);
		if (s == NULL)
		    break;
		if (def->vd_flags & VER_FLG_BASE) {
		    rfree(soname);
		    soname = rstrdup(s);
		    auxoffset += aux->vda_next;
		    continue;
		} else if (soname && !soname_only && !skipPrivate(s)) {
		    addDep(&ei->provides, soname, s, ei->marker);
		}
	    }
		    
	}
    }
    rfree(soname);
}
Example #21
0
static void processVerNeed(Elf_Scn *scn, GElf_Shdr *shdr, elfInfo *ei)
{
    Elf_Data *data = NULL;
    char *soname = NULL;
    while ((data = elf_getdata(scn, data)) != NULL) {
	unsigned int offset = 0, auxoffset;
	for (int i = shdr->sh_info; --i >= 0; ) {
	    const char *s = NULL;
	    GElf_Verneed need_mem, *need;
	    need = gelf_getverneed (data, offset, &need_mem);
	    if (need == NULL)
		break;

	    s = elf_strptr(ei->elf, shdr->sh_link, need->vn_file);
	    if (s == NULL)
		break;
	    rfree(soname);
	    soname = rstrdup(s);
	    auxoffset = offset + need->vn_aux;

	    for (int j = need->vn_cnt; --j >= 0; ) {
		GElf_Vernaux aux_mem, * aux;
		aux = gelf_getvernaux (data, auxoffset, &aux_mem);
		if (aux == NULL)
		    break;
		s = elf_strptr(ei->elf, shdr->sh_link, aux->vna_name);
		if (s == NULL)
		    break;

		if (ei->isExec && soname && !soname_only && !skipPrivate(s)) {
		    addDep(&ei->requires, soname, s, ei->marker);
		}
		auxoffset += aux->vna_next;
	    }
	    offset += need->vn_next;
	}
    }
    rfree(soname);
}
Example #22
0
void refbuf_free_help(refbuf_t rbuf) {
    refbuf_free_t rfree = rbuf->free ;
    env_t env = rbuf->env ;
    buf_t buf = rbuf->buf ;
    assert(rbuf->count == 1) ;
    assert(rbuf != &zero_rbuf) ;
    record_free(rbuf) ;
    nactive -- ;
    if (rfree) {
	rfree(env, buf) ;
    } else {
	sys_free(buf) ;
    }
}
Example #23
0
void EvalCcRqINSERTMENUITEM (CrossCallInfo *pcci)
{
    gchar *title;
    GtkWidget *menu, *menu_item, *label;
    GtkAccelGroup *accel_group;
    guint graystate, checkstate;

    printf("EvalCcRqINSERTMENUITEM\n");
    printf("Inserting item with position %d and name %s\n", pcci->p5, (char*)pcci->p3);

    printf("Checking graystate: ");
    if (pcci->p1)
    {
            graystate = 1; // MF_ENABLED
    } else {
            graystate = 0; // MF_GRAYED;
    }
    printf("%s\n", (graystate ? "enabled" : "grayed"));

    printf("Checking checkstate: ");
    if (pcci->p4)
    {
            checkstate = 1; // MF_CHECKED
    } else {
            checkstate = 0; // MF_UNCHECKED
    }
    printf("%s\n", (checkstate ? "checked" : "unchecked"));

    printf("Calling Make Mnemonic string with: %s\n", (gchar*)pcci->p3);
    title = createMnemonicString((gchar *) pcci->p3);
    printf("Got title: %s\n", title);

    menu = GTK_WIDGET(pcci->p2);

    printf("Creating new menu item\n");
    menu_item = gtk_menu_item_new_with_mnemonic(title);
    gtk_menu_shell_insert( GTK_MENU_SHELL (menu), menu_item, (gint) pcci->p5);

    gtk_signal_connect_object (GTK_OBJECT (menu_item), "activate",
        GTK_SIGNAL_FUNC (menuitem_activate_handler), menu_item);

    gtk_widget_show(menu_item);

    printf("About to free title: %s\n", title);
    rfree(title);
    printf("Freed title\n");

    printf("Creating return Cci\n");
    MakeReturn1Cci (pcci, (int64_t) menu_item);
}
Example #24
0
static void objcode_fix(cmd_rec *cmd)
/* For $ strings. Fixes object redirection if neccessary */
{
  int actorword;
  word nounword, objword;
  int dobj_obj, iobj_obj;
  int savedobj, saveactor;  
  parse_rec *savedrec, *saveactrec, *saveirec;
  rbool achange, dchange, ichange; /* Did the given _rec ptr change? */

  /* dobj_obj/iobj_obj take precedence over anything else */
  actorword=cmd->actor;  nounword=cmd->nouncmd;  objword=cmd->objcmd;
  dobj_obj=cmd->noun_obj; iobj_obj=cmd->obj_obj;

  /* Make temporary copies of things for when more than one thing is
     being shuffled around; we don't need to save iobj since
     it's processed last */
  saveactor=actor; saveactrec=actor_rec;
  savedobj=dobj; savedrec=dobj_rec;
  saveirec=iobj_rec; /* Saved only so it can be freed */

  /* Fix object numbers... */
  fix_objnum(&actor,actorword,0,saveactor,savedobj,iobj);
  fix_objnum(&dobj,nounword,dobj_obj,saveactor,savedobj,iobj);
  fix_objnum(&iobj,objword,iobj_obj,saveactor,savedobj,iobj);

  /* ... and records */
  achange=fix_objrec(&actor_rec,actorword,0,saveactrec,savedrec,iobj_rec);
  dchange=fix_objrec(&dobj_rec,nounword,dobj_obj,saveactrec,savedrec,iobj_rec);
  ichange=fix_objrec(&iobj_rec,objword,iobj_obj,saveactrec,savedrec,iobj_rec);

  /* Free up whatever needs freeing */
  if (achange) rfree(saveactrec);
  if (dchange) rfree(savedrec);
  if (ichange) rfree(saveirec);
}
Example #25
0
static regex_t *rpmfcAttrReg(const char *name,
			     const char *attr_prefix, const char *attr)
{
    regex_t *reg = NULL;
    char *pattern = rpmfcAttrMacro(name, attr_prefix, attr);
    if (pattern) {
	reg = xcalloc(1, sizeof(*reg));
	if (regcomp(reg, pattern, REG_EXTENDED) != 0) { 
	    rpmlog(RPMLOG_WARNING, _("Ignoring invalid regex %s\n"), pattern);
	    reg = _free(reg);
	}
	rfree(pattern);
    }
    return reg;
}
Example #26
0
void EvalCcRqMODIFYMENUITEM (CrossCallInfo *pcci)	/* hitem, hmenu, textptr; no result.	*/
{
    GtkWidget *menu, *menu_item, *label;
    gchar *title;

    printf("EvalCcRqMODIFYMENUITEM\n");
    title = createMnemonicString((gchar *) pcci->p3);

    menu = GTK_WIDGET(pcci->p2);
    menu_item = GTK_WIDGET(pcci->p1);
    label = gtk_bin_get_child(GTK_BIN(menu_item));
    gtk_label_set_text_with_mnemonic(GTK_LABEL(label), title);

    rfree(title);

    MakeReturn0Cci (pcci);
}
Example #27
0
/**
 @brief ハウスホルダー変換を右から作用 B=A*H, H=I-alpha*h*h'
 @details h[0]=0; ...; h[k-1]=0; h[k]=-s*xi; h[k+1]=x[k+1]; ...; h[n-1]=x[n-1];
 @param[in]  m     行列Aの行の個数.
 @param[in]  n     行列Aの列の個数.
 @param[in]  k     第k要素が基準.
 @param[in]  h     ハウスホルダー・ベクトル.
 @param[in]  alpha ハウスホルダー・ベクトルの規格化定数.
 @param[out] B     変換された行列B.
*/
void rhouseholder_right(int m, int n, rmulti **B, int LDB, rmulti **A, int LDA, int k, rmulti **h, rmulti *alpha)
{
  int prec;
  rmulti *a=NULL,**p=NULL;
  // allocate
  prec=rmat_get_prec_max(m,n,B,LDB);
  a=rallocate_prec(prec);
  p=rvec_allocate_prec(m,prec);
  // p=A*h
  rvec_lintr(m,n-k,p,&COL(A,k,LDA),LDA,&h[k]);
  // B=A*H=A-alpha*(A*h)*h'=A-alpha*p*h'
  rneg(a,alpha);
  rmat_rank1op(m,n-k,&COL(B,k,LDB),LDB,&COL(A,k,LDA),LDA,a,p,&h[k]);
  // done
  a=rfree(a);
  p=rvec_free(m,p);
}
Example #28
0
 void
 Space::kill_brancher(unsigned int id) {
   if (failed())
     return;
   for (Brancher* b = Brancher::cast(bl.next()); 
        b != Brancher::cast(&bl); b = Brancher::cast(b->next()))
     if (b->id() == id) {
       // Make sure that neither b_status nor b_commit does not point to b
       if (b_commit == b)
         b_commit = Brancher::cast(b->next());
       if (b_status == b)
         b_status = Brancher::cast(b->next());
       b->unlink();
       rfree(b,b->dispose(*this));
       return;
     }
 }
Example #29
0
/**
 @brief ハウスホルダー変換を左から作用 B=H*A, H=I-alpha*h*h'
 @details h[0]=0; ...; h[k-1]=0; h[k]=-s*xi; h[k+1]=x[k+1]; ...; h[n-1]=x[n-1];
 @param[in]  m     行列Aの行の個数.
 @param[in]  n     行列Aの列の個数.
 @param[in]  k     第k要素が基準.
 @param[in]  h     ハウスホルダー・ベクトル.
 @param[in]  alpha ハウスホルダー・ベクトルの規格化定数.
 @param[out] B     変換された行列B.
*/
void rhouseholder_left(int m, int n, rmulti **B, int LDB, rmulti **A, int LDA, int k, rmulti **h, rmulti *alpha)
{
  int prec;
  rmulti *a=NULL,**p=NULL;
  // allocate
  prec=rmat_get_prec_max(m,n,B,LDB);
  a=rallocate_prec(prec);
  p=rvec_allocate_prec(m,prec);
  // p=A'*h
  rvec_lintr_t(m-k,n,p,&MAT(A,k,0,LDA),LDA,&h[k]);
  // B=H*A=A-alpha*h*(A'*h)'=A-alpha*h*p'
  rneg(a,alpha);
  rmat_rank1op(m-k,n,&MAT(B,k,0,LDB),LDB,&MAT(A,k,0,LDA),LDA,a,&h[k],p);
  // done
  a=rfree(a);
  p=rvec_free(m,p);
}
Example #30
0
/*	Insert a menu into the menu bar. */
void EvalCcRqINSERTMENU (CrossCallInfo *pcci)
{
    gint i;
    gchar *title;
    GtkWidget *parent_menu, *root_menu, *sub_menu;
    GtkAccelGroup *accel_group;
    printf("EvalCcRqINSERTMENU\n");

    title = createMnemonicString((gchar *) pcci->p3);
    parent_menu = GTK_WIDGET(pcci->p2);
    sub_menu = GTK_WIDGET(pcci->p4);

    if (GTK_IS_MENU_BAR(parent_menu))
    {
        printf("Adding to a menu bar.\n");
        GtkWidget *frame = gtk_widget_get_parent(gtk_widget_get_parent(parent_menu));
        if (!G_IS_OBJECT(frame))
            frame = gtk_widget_get_parent(parent_menu);
        accel_group = ((GtkAccelGroup*)gtk_accel_groups_from_object (G_OBJECT(frame))->data);
    }
    else
    {
        printf("We're not adding to a menu bar!?!\n");
        accel_group = gtk_menu_get_accel_group (GTK_MENU(parent_menu));
    }

    gtk_menu_set_accel_group (GTK_MENU(sub_menu), accel_group);

    root_menu = gtk_menu_item_new_with_mnemonic(title);
    gtk_widget_set_sensitive(root_menu, (gboolean) pcci->p1);
    gtk_widget_show (root_menu);

    gtk_menu_item_set_submenu (GTK_MENU_ITEM (root_menu), sub_menu);

    if (GTK_IS_MENU_BAR(parent_menu))
    {
        gtk_menu_shell_insert(GTK_MENU_SHELL(parent_menu), root_menu, (gint) pcci->p5);
    } else {
        gtk_menu_insert(GTK_MENU(parent_menu), root_menu, (gint) pcci->p5);
    }

    rfree(title);

    MakeReturn1Cci (pcci, (int64_t) sub_menu);
}