Exemplo n.º 1
0
void CFGAS_FontMgr::GetNames(const uint8_t* name_table,
                             CFX_WideStringArray& Names) {
  if (!name_table)
    return;

  uint8_t* lpTable = (uint8_t*)name_table;
  CFX_WideString wsFamily;
  uint8_t* sp = lpTable + 2;
  uint8_t* lpNameRecord = lpTable + 6;
  uint16_t nNameCount = GetUInt16(sp);
  uint8_t* lpStr = lpTable + GetUInt16(sp + 2);
  for (uint16_t j = 0; j < nNameCount; j++) {
    uint16_t nNameID = GetUInt16(lpNameRecord + j * 12 + 6);
    if (nNameID != 1)
      continue;

    uint16_t nPlatformID = GetUInt16(lpNameRecord + j * 12 + 0);
    uint16_t nNameLength = GetUInt16(lpNameRecord + j * 12 + 8);
    uint16_t nNameOffset = GetUInt16(lpNameRecord + j * 12 + 10);
    wsFamily.clear();
    if (nPlatformID != 1) {
      for (uint16_t k = 0; k < nNameLength / 2; k++) {
        FX_WCHAR wcTemp = GetUInt16(lpStr + nNameOffset + k * 2);
        wsFamily += wcTemp;
      }
      Names.Add(wsFamily);
      continue;
    }
    for (uint16_t k = 0; k < nNameLength; k++) {
      FX_WCHAR wcTemp = GetUInt8(lpStr + nNameOffset + k);
      wsFamily += wcTemp;
    }
    Names.Add(wsFamily);
  }
}
    Value *GetDefaultValue(CodeGenerator *codegen, AstTypeNode *typeNode) {
        switch (typeNode->getTypeType()) {
        default: return nullptr;
        case node_boolean: return codegen->getBuilder().getFalse();
        case node_float: return GetFloat(codegen, 0.0f);
        case node_double: return GetDouble(codegen, 0.0);

        case node_signed_integer8: return GetInt8(codegen, 0);
        case node_signed_integer16: return GetInt16(codegen, 0);
        case node_signed_integer32: return GetInt32(codegen, 0);
        case node_signed_integer64: return GetInt64(codegen, 0);

        case node_unsigned_integer8: return GetUInt8(codegen, 0);
        case node_unsigned_integer16: return GetUInt16(codegen, 0);
        case node_unsigned_integer32: return GetUInt32(codegen, 0);
        case node_unsigned_integer64: return GetUInt64(codegen, 0);

        case node_string: return GetString(codegen, "");
        }
    }
Exemplo n.º 3
0
void CMdbResult::GetNumber(void* v, register uint32 nFieldNo)
{
	switch(GetType(nFieldNo))
	{
	case MDB_INT8_FIELD:
		*(int8*)v = GetInt8(nFieldNo);
		break;
	case MDB_INT16_FIELD:
		*(int16*)v = GetInt16(nFieldNo);
		break;
	case MDB_INT32_FIELD:
		*(int32*)v = GetInt32(nFieldNo);
		break;
	case MDB_INT64_FIELD:
		*(int64*)v = GetInt64(nFieldNo);
		break;
	case MDB_UINT8_FIELD:
		*(uint8*)v = GetUInt8(nFieldNo);
		break;
	case MDB_UINT16_FIELD:
		*(uint16*)v = GetUInt16(nFieldNo);
		break;
	case MDB_UINT32_FIELD:
		*(uint32*)v = GetUInt32(nFieldNo);
		break;
	case MDB_UINT64_FIELD:
		*(uint64*)v = GetUInt64(nFieldNo);
		break;
	case MDB_FLOAT_FIELD:
		*(float*)v = GetFloat(nFieldNo);
		break;
	case MDB_DOUBLE_FIELD:
	case MDB_DATETIME_FIELD:
		*(double*)v = GetDouble(nFieldNo);
		break;
	case MDB_DATE_FIELD:
	case MDB_TIME_FIELD:
		*(int32*)v = GetInt32(nFieldNo);
		break;
	}
}