当前位置: 首页>>代码示例>>C++>>正文


C++ ASSERT_MSG函数代码示例

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


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

示例1: LoadOffsets

/* stores the table of offsets for all records of the current file for
   faster access.  */
static void LoadOffsets(axxPacFD fd)
{
    MemPtr mp;

    /* assumption: there is just one file being read */
    ASSERT_MSG("AIM6", currFileDesc == -1);

    axxPacSeek(LibRef, fd, 76, SEEK_SET);
    axxPacRead(LibRef, fd, &nrec, 2);
    moff = MemHandleNew(nrec * 8L);
    ASSERT_MSG("AIM3", moff != 0);

    mp = MemHandleLock(moff);
    ASSERT_MSG("AIM4", mp != 0);

    axxPacSeek(LibRef, fd, 78, SEEK_SET);
    axxPacRead(LibRef, fd, mp, nrec * 8L);
    MemHandleUnlock(moff);
    currFileDesc = fd;
    nrec--;
}
开发者ID:TimofonicJunkRoom,项目名称:plucker,代码行数:23,代码来源:axxpacimp.c

示例2: ASSERT_MSG

void VertexLoader::Setup(const PipelineRegs& regs) {
    ASSERT_MSG(!is_setup, "VertexLoader is not intended to be setup more than once.");

    const auto& attribute_config = regs.vertex_attributes;
    num_total_attributes = attribute_config.GetNumTotalAttributes();

    boost::fill(vertex_attribute_sources, 0xdeadbeef);

    for (int i = 0; i < 16; i++) {
        vertex_attribute_is_default[i] = attribute_config.IsDefaultAttribute(i);
    }

    // Setup attribute data from loaders
    for (int loader = 0; loader < 12; ++loader) {
        const auto& loader_config = attribute_config.attribute_loaders[loader];

        u32 offset = 0;

        // TODO: What happens if a loader overwrites a previous one's data?
        for (unsigned component = 0; component < loader_config.component_count; ++component) {
            if (component >= 12) {
                LOG_ERROR(HW_GPU,
                          "Overflow in the vertex attribute loader %u trying to load component %u",
                          loader, component);
                continue;
            }

            u32 attribute_index = loader_config.GetComponent(component);
            if (attribute_index < 12) {
                offset = Common::AlignUp(offset,
                                         attribute_config.GetElementSizeInBytes(attribute_index));
                vertex_attribute_sources[attribute_index] = loader_config.data_offset + offset;
                vertex_attribute_strides[attribute_index] =
                    static_cast<u32>(loader_config.byte_count);
                vertex_attribute_formats[attribute_index] =
                    attribute_config.GetFormat(attribute_index);
                vertex_attribute_elements[attribute_index] =
                    attribute_config.GetNumElements(attribute_index);
                offset += attribute_config.GetStride(attribute_index);
            } else if (attribute_index < 16) {
                // Attribute ids 12, 13, 14 and 15 signify 4, 8, 12 and 16-byte paddings,
                // respectively
                offset = Common::AlignUp(offset, 4);
                offset += (attribute_index - 11) * 4;
            } else {
                UNREACHABLE(); // This is truly unreachable due to the number of bits for each
                               // component
            }
        }
    }

    is_setup = true;
}
开发者ID:FenrisulfrX,项目名称:citra,代码行数:53,代码来源:vertex_loader.cpp

示例3: ASSERT_MSG

void DX9VertexShader::setVec4( const char* paramName, const D3DXVECTOR4& vec )
{
   if ( m_activeConstantsTable )
   {
      D3DXHANDLE hConstant = m_activeConstantsTable->GetConstantByName( NULL, paramName );
      if ( hConstant )
      {
         HRESULT res = m_activeConstantsTable->SetVector( m_d3Device, hConstant, &vec );
         ASSERT_MSG( SUCCEEDED( res ), translateDxError( "setVec4", res ).c_str() );
      }
   }
}
开发者ID:chenwenbin928,项目名称:tamy,代码行数:12,代码来源:DX9VertexShader.cpp

示例4: ASSERT

const Quadtree<T,D>* Quadtree<T,D>::FindLeafNode(const vec<T,D>* p) const
{
	if(IsLeaf())
    {
        ASSERT(ContainsPoint(p));
        return this;
    }
    
    Orthant<D> orthant = GetOrthant(p);
    ASSERT_MSG(children[orthant] != NULL, "The point does not appear in a leaf node in the quadtree.\n");
    return children[orthant]->FindLeafNode(p);    
}
开发者ID:MelkorOJ,项目名称:wssd_cech,代码行数:12,代码来源:Quadtree.cpp

示例5: mtx_init

void mtx_init( Tmtx_ptr A, int nrows, int ncols )
{
	if( A->init )
		mtx_free( A );
	
	A->init = 1;
	A->nrows = nrows;
	A->ncols = ncols;
	A->dat = (double *)calloc( nrows*ncols, sizeof(double) );
	A->tau = NULL;		// This is only allocated by least squares routines
	ASSERT_MSG( A->dat!=NULL, "mtx_init() : unable calloc memory for dense matrix" );
}
开发者ID:jackd,项目名称:FVMPor,代码行数:12,代码来源:linalg_dense.c

示例6: ASSERT_MSG

Orthant<D> Quadtree<T,D>::GetOrthant(const vec<T,D>* p) const
{
    ASSERT_MSG(ContainsPoint(p), "The node does not contain the point for which we try to find the orthant.\n");

    Orthant<D> orthant;
    for(int d=0; d<D; ++d)
    {
        orthant.Set(d, minPoint[d] + (sideLength/T(2)) < (*p)[d]);
    }

    return orthant;
}
开发者ID:MelkorOJ,项目名称:wssd_cech,代码行数:12,代码来源:Quadtree.cpp

示例7: WriteProcessPipe

/**
 * DSP_DSP::WriteProcessPipe service function
 *  Inputs:
 *      1 : Pipe Number
 *      2 : Size
 *      3 : (size << 14) | 0x402
 *      4 : Buffer
 *  Outputs:
 *      0 : Return header
 *      1 : Result of function, 0 on success, otherwise error code
 */
static void WriteProcessPipe(Service::Interface* self) {
    u32* cmd_buff = Kernel::GetCommandBuffer();

    u32 pipe_index = cmd_buff[1];
    u32 size = cmd_buff[2];
    u32 buffer = cmd_buff[4];

    AudioCore::DspPipe pipe = static_cast<AudioCore::DspPipe>(pipe_index);

    if (IPC::StaticBufferDesc(size, 1) != cmd_buff[3]) {
        LOG_ERROR(Service_DSP,
                  "IPC static buffer descriptor failed validation (0x%X). pipe=%u, "
                  "size=0x%X, buffer=0x%08X",
                  cmd_buff[3], pipe_index, size, buffer);
        cmd_buff[0] = IPC::MakeHeader(0, 1, 0);
        cmd_buff[1] = IPC::ERR_INVALID_BUFFER_DESCRIPTOR.raw;
        return;
    }

    ASSERT_MSG(Memory::IsValidVirtualAddress(buffer),
               "Invalid Buffer: pipe={}, size={:#X}, buffer={:#010X}", pipe_index, size, buffer);

    std::vector<u8> message(size);
    for (u32 i = 0; i < size; i++) {
        message[i] = Memory::Read8(buffer + i);
    }

    // This behaviour was confirmed by RE.
    // The likely reason for this is that games tend to pass in garbage at these bytes
    // because they read random bytes off the stack.
    switch (pipe) {
    case AudioCore::DspPipe::Audio:
        ASSERT(message.size() >= 4);
        message[2] = 0;
        message[3] = 0;
        break;
    case AudioCore::DspPipe::Binary:
        ASSERT(message.size() >= 8);
        message[4] = 1;
        message[5] = 0;
        message[6] = 0;
        message[7] = 0;
        break;
    }

    Core::DSP().PipeWrite(pipe, message);

    cmd_buff[0] = IPC::MakeHeader(0xD, 1, 0);
    cmd_buff[1] = RESULT_SUCCESS.raw; // No error

    LOG_DEBUG(Service_DSP, "pipe=%u, size=0x%X, buffer=0x%08X", pipe_index, size, buffer);
}
开发者ID:DaMan69,项目名称:citra,代码行数:63,代码来源:dsp_dsp.cpp

示例8: RegisterEvent

EventType* RegisterEvent(const std::string& name, TimedCallback callback) {
    // check for existing type with same name.
    // we want event type names to remain unique so that we can use them for serialization.
    ASSERT_MSG(event_types.find(name) == event_types.end(),
               "CoreTiming Event \"{}\" is already registered. Events should only be registered "
               "during Init to avoid breaking save states.",
               name);

    auto info = event_types.emplace(name, EventType{callback, nullptr});
    EventType* event_type = &info.first->second;
    event_type->name = &info.first->first;
    return event_type;
}
开发者ID:DaMan69,项目名称:citra,代码行数:13,代码来源:core_timing.cpp

示例9: command_postfork

static void command_postfork(void *data) {
	struct lua_command_data *lcd = data;
	struct lua_State *L = lcd->L;
	ASSERT(L);
	// This would be called from within the lua_run_command, no need to allocate more stack
	if (lcd->postfork_callback) {
		int handler = push_err_handler(L);
		extract_registry_value(L, lcd->postfork_callback);
		int result = lua_pcall(L, 0, 0, handler);
		ASSERT_MSG(!result, "%s", interpreter_error_result(L));
	}
	// We don't worry about freeing memory here. We're going to exec just in a while.
}
开发者ID:CZ-NIC,项目名称:turris-updater,代码行数:13,代码来源:interpreter.c

示例10: CR_thread_start

int CR_thread_start( unsigned int n )
{
    nspawns = n;

    if ( m_state_get() == M_RESTART ) {
        ASSERT_MSG( restart_version >= 0, "Internal error" );
    }

#ifndef CR_FTB
    // This must be called before mpispawn are started
    // Do not move this to CR_Loop()
    if (USE_LINEAR_SSH) {
        if (!show_on) {
            int rv = create_connections();
            if ( rv != 0 ) {
                return -1;
            }
        }
    }
#endif

    struct timeval starting;
    gettimeofday(&starting, NULL);
    starting_time = last_ckpt = starting.tv_sec;

    // Check and set CR state
    CR_state_lock();
    ASSERT_MSG( cr_state == CR_INIT || cr_state == CR_STOPPED, "Internal Error\n");
    CR_state_transition_nolock( CR_INIT );
    CR_state_unlock();

    if (pthread_create(&cr_tid, NULL, CR_Loop, NULL) < 0) {
        PRINT_ERROR_ERRNO("pthread_create() failed", errno);
        cr_tid = 0;
        return -1;
    }

    return 0;
}
开发者ID:hpc,项目名称:mvapich2-cce,代码行数:39,代码来源:mpirun_ckpt.c

示例11: RecvDataIsReady

/**
 * DSP_DSP::RecvDataIsReady service function
 *      This function checks whether a DSP register is ready to be read.
 *  Inputs:
 *      1 : Register Number
 *  Outputs:
 *      1 : Result of function, 0 on success, otherwise error code
 *      2 : non-zero == ready
 *  Note:
 *      This function has only been observed being called with a register number of 0.
 */
static void RecvDataIsReady(Service::Interface* self) {
    u32* cmd_buff = Kernel::GetCommandBuffer();

    u32 register_number = cmd_buff[1];

    ASSERT_MSG(register_number == 0, "Unknown register_number {}", register_number);

    cmd_buff[0] = IPC::MakeHeader(0x2, 2, 0);
    cmd_buff[1] = RESULT_SUCCESS.raw;
    cmd_buff[2] = 1; // Ready to read

    LOG_DEBUG(Service_DSP, "register_number=%u", register_number);
}
开发者ID:DaMan69,项目名称:citra,代码行数:24,代码来源:dsp_dsp.cpp

示例12: kmalloc

void *kmalloc_pages(size_t npages)
{
    void *p;

    p = kmalloc(npages * PAGE_SIZE);
    if (!p)
        return NULL;

    /* check page alignment in debug kernels */
    ASSERT_MSG(!((addr_t)p % PAGE_SIZE), "allocated memory is not page aligned!\n");

    return p;
}
开发者ID:skarpenko,项目名称:phlox,代码行数:13,代码来源:heap.c

示例13: ASSERT_MSG

void Sound3D::assignChannel(SoundDevice& device)
{
   if (m_channel != NULL)
   {
      ASSERT_MSG( false, "The 3d sound already has a channel assigned");
      return;
   }

   m_channel = &(device.activateSound(m_sound));
   onChannelAssigned(*m_channel);
   m_channel->setLooped(m_looped);
   m_channel->play();
}
开发者ID:dabroz,项目名称:Tamy,代码行数:13,代码来源:Sound3D.cpp

示例14: get_type

 /**
  * Returns the type of the SArray (as set by 
  * \ref swriter<flexible_type>::set_type). If the type of the SArray was
  * not set, this returns \ref flex_type_enum::UNDEFINED, in which case
  * each row can be of arbitrary type.
  *
  * This function should only be used for sarray<flexible_type> and
  * will fail fatally otherwise.
  */
 flex_type_enum get_type() const {
   if (!std::is_same<T, flexible_type>::value) {
     ASSERT_MSG(false, 
                 "Use of get_type() in SArray which "
                 "does not contain flexible_types");
   }
   ASSERT_NE(reader, NULL);
   const index_file_information& index_info = reader->get_index_info();
   if (index_info.metadata.count("__type__")) {
     return flex_type_enum::UNDEFINED;
   }
   return flex_type_enum(std::stoi(index_info.metadata.at("__type__")));
 }
开发者ID:Bhushan1002,项目名称:SFrame,代码行数:22,代码来源:sarray_reader.hpp

示例15: ASSERT_MSG

/* create user process */
process_t *proc_create_user_process(const char *name, process_t *parent,
    vm_address_space_t *aspace, const char *args, uint role)
{
    process_t *proc;

    ASSERT_MSG(name != NULL && strlen(name) <= SYS_MAX_OS_NAME_LEN,
        "proc_create_user_process: user process name is invalid!\n");

    /* check args */
    if(aspace == NULL || role > PROCESS_ROLES_COUNT)
        return NULL;

    /* create process struct */
    proc = create_process_common(name, args);
    if(!proc)
        return INVALID_PROCESSID;

    /* init struct fields */
    proc->aspace = vm_inc_aspace_refcnt(aspace);
    if(!proc->aspace)
        goto error_exit;
    if(parent) {
        proc->parent = proc_inc_refcnt(parent);
        if(!proc->parent)
            goto error_exit;
    }
    proc->aid = proc->aspace->id;
    proc->process_role = role;
    proc->def_prio = process_roles_props[proc->process_role].def_prio;
    proc->def_sched_policy.raw =
        process_roles_props[proc->process_role].def_sched_policy.raw;
    atomic_set((atomic_t*)&proc->ref_count, 1); /* already has one ref owned by caller */

    /* init arch-dependend part */
    if(arch_init_process_struct(proc) != NO_ERROR)
        goto error_exit;

    /* add to processes list */
    put_process_to_list(proc);

    return proc; /* return to caller */

/* exit on errors */
error_exit:
    if(proc->aspace) vm_put_aspace(proc->aspace);
    if(proc->parent) proc_put_process(proc->parent);

    destroy_process_common(proc);

    return NULL;
}
开发者ID:skarpenko,项目名称:phlox,代码行数:52,代码来源:process.c


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