STDMETHODIMP EventSourceChangedEventWrap::COMGETTER(Add)(BOOL *aAdd) { LogRelFlow(("{%p} %s: enter aAdd=%p\n", this, "EventSourceChangedEvent::getAdd", aAdd)); VirtualBoxBase::clearError(); HRESULT hrc; try { CheckComArgOutPointerValidThrow(aAdd); AutoCaller autoCaller(this); if (FAILED(autoCaller.rc())) throw autoCaller.rc(); hrc = getAdd(aAdd); } catch (HRESULT hrc2) { hrc = hrc2; } catch (...) { hrc = VirtualBoxBase::handleUnexpectedExceptions(this, RT_SRC_POS); } LogRelFlow(("{%p} %s: leave *aAdd=%RTbool hrc=%Rhrc\n", this, "EventSourceChangedEvent::getAdd", *aAdd, hrc)); return hrc; }
//!------------------------------------------ void processTask() { FILE * input = NULL; input = formBuffer(input); FILE * lex_dump = openFile("lex_dump.txt"); initiateLexemsArr(); formLexems(); dumpLexems(lex_dump); treeElem_t * tree = getAdd(); ASSERT_OK(tree); if (CUR_TOKEN.Descriptor || Lexems.warn) { EMPT SLASHES printf("SYNTAX ERROR! CHECK YOUR FUNCTION!\n"); printf("(%s)\n", CUR_OPER); printf("cnt_lex = %d\n", cnt_lex); SLASHES EMPT }
void CalculatriceModele::getSum(int type){ if(pile.size()>=1){ Constante* a = pile.pop(); if(typeid (*a).name()==typeid (Entier).name()){ Entier* e = dynamic_cast<Entier*>(a); int k = e->GetEntier(); if(pile.size()>=k) { for(int i=0; i<k-1; i++){ emit getAdd(type); } Constante* res = pile.pop(); pile.push(res); if(typeid (*res).name()==typeid (Expression).name()){ emit getExpression(); } } else { logger1->Write(&LogMessage(ERROR,"pas assez d'expressions")); logger2->Write(&LogMessage(ERROR,"pas assez d'expressions")); pile.push(a);} }else{ pile.push(a); logger1->Write(&LogMessage(ERROR,"type non conforme")); logger2->Write(&LogMessage(ERROR,"type non conforme")); } emit finOp(&pile); } else{ logger1->Write(&LogMessage(ERROR,"taille pile insuffisante")); logger2->Write(&LogMessage(ERROR,"taille pile insuffisante")); } }
void dp(int cur) { flag[cur] = 1; int stcnt = 0; int extra[4][2],recid[4][2]; int add[4]; for(int i=0;i<4;i++) { add[i] = MAX; mn[cur][i] = MAX; for(int j=0;j<2;j++) { extra[i][j] = MAX; recid[i][j] = MAX; } } int cnt = 0; int sum = 0; for(Node * tmp = node[cur].next ; tmp != NULL ; tmp = tmp->next) { int id = tmp->id; if(flag[id] == -1) { stcnt ++; dp(id); sum += mn[id][3]; /* if(cur == 1) printf("%d %d\n",id,cnt); */ int ss = 0; if(cur == 1)ss = -1; deal(id,cnt,ss,add,extra,recid); // printf("cnt:%d\n",cnt); } } if(stcnt > 1) { int ref = 0; if(cur == 1) ref = -1; add[2] = getAdd(ref,extra,recid); } if(stcnt == 0) { mn[cur][0] = 0; mn[cur][1] = 0; mn[cur][3] = 0; return; } int lim = Min(3,stcnt+1); for(int i=0;i<lim;i++) { mn[cur][i] = sum + add[i] + stcnt - subtract[i]; /* if(cur == 1) printf("cur : %d kind %d sum %d add %d addedge%d\n",cur,i,sum,add[i],stcnt-subtract[i]); */ if(mn[cur][i] < mn[cur][3]) mn[cur][3] = mn[cur][i]; } }