コード例 #1
0
ファイル: tracebuilder.cpp プロジェクト: CyaLiven/hiphop-php
/*
 * Save current state for block.  If this is the first time saving state
 * for block, create a new snapshot.  Otherwise merge the current state into
 * the existing snapshot.
 */
void TraceBuilder::saveState(Block* block) {
  if (State* state = m_snapshots[block]) {
    mergeState(state);
  } else {
    m_snapshots[block] = createState().release();
  }
}
コード例 #2
0
ファイル: trace-builder.cpp プロジェクト: bnovoa/hiphop-php
/*
 * Save current state for block.  If this is the first time saving state
 * for block, create a new snapshot.  Otherwise merge the current state into
 * the existing snapshot.
 */
void TraceBuilder::saveState(Block* block) {
  if (State* state = m_snapshots[block]) {
    mergeState(state);

    // reset caller's available values for all inlined frames
    for (auto& state : m_inlineSavedStates) {
      state->callerAvailableValues.clear();
    }
  } else {
    m_snapshots[block] = createState().release();
  }
}
コード例 #3
0
ファイル: RClientState.cpp プロジェクト: howarthjw/rstudio
void ClientState::putProjectPersistent(
                              const json::Object& projectPersistentState)
{
   mergeState(projectPersistentState, &projectPersistentState_);
}
コード例 #4
0
ファイル: RClientState.cpp プロジェクト: howarthjw/rstudio
void ClientState::putTemporary(const json::Object& temporaryState)
{
   mergeState(temporaryState, &temporaryState_);
}