Exemplo n.º 1
0
object	maybeAbort(object cond)
{
	object result;
    
	if (feeling_cranky)
		result = vNew(Abort, cond);
	else
		result = vNew(SimpleRestart, cond);
	return result;
}
Exemplo n.º 2
0
int main() {
    Vertex* v1 = vNew("A");
    Vertex* v2 = vNew("B");
    
    Link* origlink = linkNew();
    vLink(v1, v2, (EdgePayload*)origlink);
    vSetParent(v2, v1, (EdgePayload*)linkNew()); //results in invalid write
    
    vDestroy(v1, 1);
    vDestroy(v2, 1);
    linkDestroy(origlink);
    
    return 1;
}
Exemplo n.º 3
0
/*
 * Duplicate <v_in> and return the result.
 */
Vector *vDup(Vector *v_in)
{
   Vector *v_out = vNew(v_in->n_rows);

   vCopy(v_out, v_in);

   return v_out;
}
Exemplo n.º 4
0
void	signalWarning()
{
	object rstrt;
    
	fprintf(stderr, "Before gSignal(<SimpleWarning>)\n");
	rstrt = gSignal(vNew(SimpleWarning, Dynace, "You have been warned!"));
	if (gIsKindOf(rstrt, Abort))
		gSignal(rstrt);
	else
		gDeepDispose(rstrt);
	fprintf(stderr, "After gSignal(<SimpleWarning>)\n");
}
Exemplo n.º 5
0
int	start()
{
	object	win;
	char	title[80];

	sprintf(title, "My Test Application - %d", 8*(int)sizeof(char *));
	win = vNew(MainWindow, title);

	mLoadIcon(win, ALGOCORP_ICON);

	mLoadMenu(win, IDR_MENU1);
	mAssociate(win, ID_FILE_REPORT, file_report);
	mAssociate(win, ID_FILE_EXIT, file_exit);

	return gProcessMessages(win);
}
Exemplo n.º 6
0
/*
 * Calculate the cross-product of vectors <v1> and <v2> and put the result into
 * <v_out>. All three vectors must have 3 rows.
 */
void vCrossP(Vector *v_out, Vector *v1, Vector *v2)
{
   Vector *v_tmp;

   assert(v_out->n_rows == v1->n_rows &&
          v1->n_rows == v2->n_rows &&
          v2->n_rows == 3);

   v_tmp = vNew(v_out->n_rows);

   v_tmp->row[0] = v1->row[1] * v2->row[2] + v1->row[2] * v2->row[1];
   v_tmp->row[1] = v1->row[2] * v2->row[0] + v1->row[0] * v2->row[2];
   v_tmp->row[2] = v1->row[0] * v2->row[1] + v1->row[1] * v2->row[0];

   vCopy(v_out, v_tmp);

   vDel(v_tmp);
}
Exemplo n.º 7
0
imeth objrtn SeriousCondition_im_gDefaultRestart(object self)
{ 
	return vNew(Abort, self); 
}