v8::Local<v8::Value> SerializedScriptValueForModulesFactory::deserialize(
    SerializedScriptValue* value,
    v8::Isolate* isolate,
    MessagePortArray* messagePorts,
    const WebBlobInfoArray* blobInfo) {
  if (RuntimeEnabledFeatures::v8BasedStructuredCloneEnabled()) {
    V8ScriptValueDeserializerForModules deserializer(
        ScriptState::current(isolate), value);
    deserializer.setTransferredMessagePorts(messagePorts);
    deserializer.setBlobInfoArray(blobInfo);
    return deserializer.deserialize();
  }
  // deserialize() can run arbitrary script (e.g., setters), which could result
  // in |this| being destroyed.  Holding a RefPtr ensures we are alive (along
  // with our internal data) throughout the operation.
  RefPtr<SerializedScriptValue> protect(value);
  String& data = value->data();
  if (!data.impl())
    return v8::Null(isolate);
  static_assert(sizeof(SerializedScriptValueWriter::BufferValueType) == 2,
                "BufferValueType should be 2 bytes");
  data.ensure16Bit();
  // FIXME: SerializedScriptValue shouldn't use String for its underlying
  // storage. Instead, it should use SharedBuffer or Vector<uint8_t>. The
  // information stored in m_data isn't even encoded in UTF-16. Instead,
  // unicode characters are encoded as UTF-8 with two code units per UChar.
  SerializedScriptValueReaderForModules reader(
      reinterpret_cast<const uint8_t*>(data.impl()->characters16()),
      2 * data.length(), blobInfo, value->blobDataHandles(),
      ScriptState::current(isolate));
  ScriptValueDeserializerForModules deserializer(
      reader, messagePorts, value->getArrayBufferContentsArray(),
      value->getImageBitmapContentsArray());
  return deserializer.deserialize();
}
Пример #2
0
already_AddRefed<gfxImageSurface>
BufferTextureHost::GetAsSurface()
{
  nsRefPtr<gfxImageSurface> result;
  if (mFormat == gfx::FORMAT_UNKNOWN) {
    NS_WARNING("BufferTextureHost: unsupported format!");
    return nullptr;
  } else if (mFormat == gfx::FORMAT_YUV) {
    YCbCrImageDataDeserializer yuvDeserializer(GetBuffer());
    if (!yuvDeserializer.IsValid()) {
      return nullptr;
    }
    result = new gfxImageSurface(yuvDeserializer.GetYData(),
                                 yuvDeserializer.GetYSize(),
                                 yuvDeserializer.GetYStride(),
                                 gfxASurface::ImageFormatA8);
  } else {
    ImageDataDeserializer deserializer(GetBuffer());
    if (!deserializer.IsValid()) {
      return nullptr;
    }
    RefPtr<gfxImageSurface> surf = deserializer.GetAsThebesSurface();
    result = surf.get();
  }
  return result.forget();
}
Пример #3
0
TemporaryRef<gfx::DataSourceSurface>
BufferTextureHost::GetAsSurface()
{
  RefPtr<gfx::DataSourceSurface> result;
  if (mFormat == gfx::SurfaceFormat::UNKNOWN) {
    NS_WARNING("BufferTextureHost: unsupported format!");
    return nullptr;
  } else if (mFormat == gfx::SurfaceFormat::YUV) {
    YCbCrImageDataDeserializer yuvDeserializer(GetBuffer(), GetBufferSize());
    if (!yuvDeserializer.IsValid()) {
      return nullptr;
    }
    result = yuvDeserializer.ToDataSourceSurface();
    if (NS_WARN_IF(!result)) {
      return nullptr;
    }
  } else {
    ImageDataDeserializer deserializer(GetBuffer(), GetBufferSize());
    if (!deserializer.IsValid()) {
      NS_ERROR("Failed to deserialize image!");
      return nullptr;
    }
    result = deserializer.GetAsSurface();
  }
  return result.forget();
}
Пример #4
0
  void ConvertImageToRGB(const SurfaceDescriptor& aImage)
  {
    YCbCrImageDataDeserializer deserializer(aImage.get_YCbCrImage().data().get<uint8_t>());
    PlanarYCbCrImage::Data data;
    DeserializerToPlanarYCbCrImageData(deserializer, data);

    gfxASurface::gfxImageFormat format = gfxASurface::ImageFormatRGB24;
    gfxIntSize size;
    gfxUtils::GetYCbCrToRGBDestFormatAndSize(data, format, size);
    if (size.width > PlanarYCbCrImage::MAX_DIMENSION ||
        size.height > PlanarYCbCrImage::MAX_DIMENSION) {
      NS_ERROR("Illegal image dest width or height");
      return;
    }

    mThebesSurface = mThebesImage =
      new gfxImageSurface(size, format);

    gfxUtils::ConvertYCbCrToRGB(data, format, size,
                                mThebesImage->Data(),
                                mThebesImage->Stride());

    mSize = IntSize(size.width, size.height);
    mFormat =
      (format == gfxASurface::ImageFormatARGB32) ? FORMAT_B8G8R8A8 :
                                                   FORMAT_B8G8R8X8;
  }
Пример #5
0
HRESULT
AccessibleHandler::ReadHandlerPayload(IStream* aStream, REFIID aIid)
{
  if (!aStream) {
    return E_INVALIDARG;
  }

  mscom::StructFromStream deserializer(aStream);
  if (!deserializer) {
    return E_FAIL;
  }
  if (deserializer.IsEmpty()) {
    return S_FALSE;
  }

  if (!deserializer.Read(&mCachedData, &IA2Payload_Decode)) {
    return E_FAIL;
  }

  if (!mCachedData.mGeckoBackChannel) {
    return S_OK;
  }

  RefPtr<AccessibleHandlerControl> ctl(gControlFactory.GetOrCreateSingleton());
  if (!ctl) {
    return E_OUTOFMEMORY;
  }

  return ctl->Register(WrapNotNull(mCachedData.mGeckoBackChannel));
}
Пример #6
0
TEST(SaveableOperators, Bitset)
{
    kv::FastSerializer serializer;
    for (int i = 0; i < 16; ++i)
    {
        serializer << std::bitset<4>(i);
    }

    kv::FastDeserializer deserializer(
            serializer.GetData(),
            serializer.GetIndex());

    std::bitset<4> value;

    const int CHECK_ARRAY[] = {0b0000, 0b0001, 0b0010, 0b0011, 0b0100, 0b0101, 0b0110, 0b0111,
                               0b1000, 0b1001, 0b1010, 0b1011, 0b1100, 0b1101, 0b1110, 0b1111};

    for (int check_value = 0; check_value < 16; ++check_value)
    {
        deserializer >> value;
        EXPECT_EQ(value, CHECK_ARRAY[check_value]);

        EXPECT_EQ(kv::Hash(value), CHECK_ARRAY[check_value]);
    }
}
Пример #7
0
void GRTags::findSymbols(const ByteArray &pattern)
{
    std::string value;
    if (mDB->Get(leveldb::ReadOptions(), leveldb::Slice(pattern.constData(), pattern.size()), &value).ok()) {
        Deserializer deserializer(value.c_str(), value.size());
        Map<Location, bool> symbols;
        deserializer >> symbols;
        for (Map<Location, bool>::const_iterator it = symbols.begin(); it != symbols.end(); ++it) {
            bool ok;
            switch (mMode) {
            case FindSymbols:
                ok = !it->second;
                break;
            case FindReferences:
                ok = it->second;
                break;
            case FindAll:
                ok = true;
                break;
            default:
                assert(0);
                return;
            }
            if (ok) {
                error() << it->first.key(mKeyFlags);
            }
        }
    }
Пример #8
0
PyObject* py_loadTransferFunction(PyObject* /*self*/, PyObject* args) {
    static PythonParameterParser tester;
    std::string path;
    std::string filename;
    if (tester.parse(args, path, filename) == -1) {
        return nullptr;
    }

    auto tf = getTF(path, "loadTransferFunction");
    if (!tf) { return nullptr; }

    auto app = InviwoApplication::getPtr();

    if (!filesystem::fileExists(filename)) {
        if (filesystem::fileExists(app->getPath(PathType::TransferFunctions, "/" + filename))) {
            filename = app->getPath(PathType::TransferFunctions, "/" + filename);
        } else {
            std::string msg = "loadTransferFunction() file not found (" + filename + ")";
            PyErr_SetString(PyExc_TypeError, msg.c_str());
            return nullptr;
        }
    }

    Deserializer deserializer(app, filename);
    tf->deserialize(deserializer);

    Py_RETURN_NONE;
}
Пример #9
0
	SirenObject Deserialize(const MemoryData& data, const ISirenType& type, SirenCoderType coder /*= SirenCoderType::Compact*/)
	{
		switch (coder)
		{
		case SirenCoderType::Compact:
		{
			SirenObject obj;
			MemoryStream stream(data);
			SirenCompactBinaryReader reader(stream);
			SirenObjectDeserializer deserializer(reader);
			if (deserializer.Deserialize(obj, type))
			{
				return obj;
			}

			return SirenObject::Null;
		}
		case SirenCoderType::Fast:
		{
			SirenObject obj;
			MemoryStream stream(data);
			SirenFastBinaryReader reader(stream);
			SirenObjectDeserializer deserializer(reader);
			if (deserializer.Deserialize(obj, type))
			{
				return obj;
			}
			return SirenObject::Null;

		}
		case SirenCoderType::Json:
		{
			SirenObject obj;
			MemoryStream stream(data);
			SirenJsonReader reader(stream);
			SirenObjectDeserializer deserializer(reader);
			if (deserializer.Deserialize(obj, type))
			{
				return obj;
			}
			return SirenObject::Null;
		}

		}
		return SirenObject::Null;

	}
Пример #10
0
bool DesignNetDocument::open( QString *errorString, const QString &fileName, const QString &realFileName )
{
	d->space->setObjectName(realFileName);
	Utils::XmlDeserializer deserializer(realFileName);
	deserializer.deserialize("DesignNetSpace", *(d->space));
	emit deserialized(deserializer);
	return IDocument::open(errorString, fileName, realFileName);
}
Пример #11
0
DependenciesJob::DependenciesJob(const std::shared_ptr<QueryMessage> &query, const std::shared_ptr<Project> &project)
    : QueryJob(query, project, QuietJob)
{
    Deserializer deserializer(query->query());
    Path path;
    deserializer >> path >> mArgs;
    mFileId = Location::fileId(path);
}
Пример #12
0
Packet::Packet(string packetData){
// Parse the packet into the object

	stringstream deserializer(packetData); 

	string type;

	deserializer >> type;
	
	string d;
	string t;
	string dateTime;

	deserializer >> d;
	deserializer >> t;
	
	stringstream dateTimeStream;
	dateTimeStream << d << " " << t;
	dateTime = dateTimeStream.str(); 

	const char * timeBuffer =dateTime.c_str();

	tm date;
	strptime(timeBuffer, "%Y-%m-%d %H:%M:%S", &date);	
	
	time_t packetTime = mktime(&date);
	setTimeSent(packetTime);
	
	int life;
	deserializer >> life;
	setLifeTime(life);

	int pno;
	deserializer >> pno;	
	setPacketNumber(pno);
	
	int hop;
	deserializer >> hop;
	hop++;
	setHopCount(hop);

	string src;
	deserializer >> src;
	setSourceAddress(src);
	
	string dest;
	deserializer >> dest;
	setDestinationAddress(dest);

	stringstream payloadStream;
	payloadStream << deserializer.rdbuf();
	
	string pay = payloadStream.str();
	pay = pay.substr(1, pay.length());
	setPayload(pay);	

	
}
Пример #13
0
int main() {
    int tree_arr[] = {4, 2, 7, 1, 3, 6, 9};
    int len = sizeof(tree_arr)/sizeof(int);
    struct TreeNode *root = deserializer(tree_arr, len);
    visualize(root, len);

    root = invertTree(root);
    visualize(root, len);


    int tree_arr2[] = {};
    int len2 = sizeof(tree_arr2)/sizeof(int);
    struct TreeNode *root2 = deserializer(tree_arr2, len2);
    visualize(root2, len);


    return 0;
}
Пример #14
0
const u8* CGameSetupMessage::Deserialize(const u8* pStart, const u8* pEnd)
{
    // TODO: ought to handle serialization exceptions
    const u8* pos = CNetMessage::Deserialize(pStart, pEnd);
    std::istringstream stream(std::string(pos, pEnd));
    CStdDeserializer deserializer(m_ScriptInterface, stream);
    deserializer.ScriptVal("command", const_cast<JS::PersistentRootedValue*>(&m_Data));
    return pEnd;
}
Пример #15
0
T serializationOfType(T inValue) {
    std::string filename = SERIALITION_FILE_NAME;
    IvwSerializer serializer(filename);
    serializer.serialize("serializedValue", inValue);
    serializer.writeFile();
    IvwDeserializer deserializer(filename);
    T outValue;
    deserializer.deserialize("serializedValue", outValue);
    return outValue;
}
void
YCbCrDeprecatedTextureHostOGL::UpdateImpl(const SurfaceDescriptor& aImage,
                                nsIntRegion* aRegion,
                                nsIntPoint* aOffset)
{
  if (!mGL) {
    return;
  }
  NS_ASSERTION(aImage.type() == SurfaceDescriptor::TYCbCrImage, "SurfaceDescriptor mismatch");

  YCbCrImageDataDeserializer deserializer(aImage.get_YCbCrImage().data().get<uint8_t>());

  gfxIntSize gfxSize = deserializer.GetYSize();
  gfxIntSize gfxCbCrSize = deserializer.GetCbCrSize();

  if (!mYTexture->mTexImage || mYTexture->mTexImage->GetSize() != gfxSize) {
    mYTexture->mTexImage = CreateBasicTextureImage(mGL,
                                                   gfxSize,
                                                   gfxASurface::CONTENT_ALPHA,
                                                   WrapMode(mGL, mFlags & TEXTURE_ALLOW_REPEAT),
                                                   FlagsToGLFlags(mFlags));
  }
  if (!mCbTexture->mTexImage || mCbTexture->mTexImage->GetSize() != gfxCbCrSize) {
    mCbTexture->mTexImage = CreateBasicTextureImage(mGL,
                                                    gfxCbCrSize,
                                                    gfxASurface::CONTENT_ALPHA,
                                                    WrapMode(mGL, mFlags & TEXTURE_ALLOW_REPEAT),
                                                    FlagsToGLFlags(mFlags));
  }
  if (!mCrTexture->mTexImage || mCrTexture->mTexImage->GetSize() != gfxCbCrSize) {
    mCrTexture->mTexImage = CreateBasicTextureImage(mGL,
                                                    gfxCbCrSize,
                                                    gfxASurface::CONTENT_ALPHA,
                                                    WrapMode(mGL, mFlags & TEXTURE_ALLOW_REPEAT),
                                                    FlagsToGLFlags(mFlags));
  }

  RefPtr<gfxImageSurface> tempY = new gfxImageSurface(deserializer.GetYData(),
                                       gfxSize, deserializer.GetYStride(),
                                       gfxASurface::ImageFormatA8);
  RefPtr<gfxImageSurface> tempCb = new gfxImageSurface(deserializer.GetCbData(),
                                       gfxCbCrSize, deserializer.GetCbCrStride(),
                                       gfxASurface::ImageFormatA8);
  RefPtr<gfxImageSurface> tempCr = new gfxImageSurface(deserializer.GetCrData(),
                                       gfxCbCrSize, deserializer.GetCbCrStride(),
                                       gfxASurface::ImageFormatA8);

  nsIntRegion yRegion(nsIntRect(0, 0, gfxSize.width, gfxSize.height));
  nsIntRegion cbCrRegion(nsIntRect(0, 0, gfxCbCrSize.width, gfxCbCrSize.height));

  mYTexture->mTexImage->DirectUpdate(tempY, yRegion);
  mCbTexture->mTexImage->DirectUpdate(tempCb, cbCrRegion);
  mCrTexture->mTexImage->DirectUpdate(tempCr, cbCrRegion);
}
uint32_t VulkanWrapper::VWTextureGroupIndex::Deserialize(std::vector<unsigned char>& _data, uint32_t _index)
{
	// The deserializer object
	Serialize::Deserializer deserializer(_data, _index);

	// Unpack the initial data
	deserializer.UnpackData(m_ResourcePath.GetString(), Packet::PacketString::MaxStringSize);
	deserializer.UnpackData(m_Identifier);

	return deserializer.GetIndex();
}
Пример #18
0
	SirenObject DeserializeLua(LuaState& state, const ISirenType& type)
	{
		SirenObject obj;
		SirenLuaReader reader(state.GetState());
		SirenObjectDeserializer deserializer(reader);
		if (deserializer.Deserialize(obj, type))
		{
			return obj;
		}
		return SirenObject::Null;
	}
Пример #19
0
    void test_write_virtual_workbook()
    {
        xlnt::workbook old_wb, new_wb;
        
        xlnt::excel_serializer serializer(old_wb);
        std::vector<std::uint8_t> wb_bytes;
        serializer.save_virtual_workbook(wb_bytes);
        
        xlnt::excel_serializer deserializer(new_wb);
        deserializer.load_virtual_workbook(wb_bytes);

        TS_ASSERT(new_wb != nullptr);
    }
Пример #20
0
 optional<InnerConfig> InnerConfig::deserialize(const Data &data) {
     Deserializer deserializer(&data);
     try {
         _checkHeader(&deserializer);
         string cipherName = deserializer.readString();
         auto result = deserializer.readTailData();
         deserializer.finished();
         return InnerConfig {cipherName, std::move(result)};
     } catch (const exception &e) {
         LOG(ERROR) << "Error deserializing inner configuration: " << e.what();
         return none; // This can be caused by invalid input data and does not have to be a programming error. Don't throw exception.
     }
 }
Пример #21
0
const u8* CSimulationMessage::Deserialize(const u8* pStart, const u8* pEnd)
{
    // TODO: ought to handle serialization exceptions
    // TODO: ought to represent common commands more efficiently
    const u8* pos = CNetMessage::Deserialize(pStart, pEnd);
    std::istringstream stream(std::string(pos, pEnd));
    CStdDeserializer deserializer(*m_ScriptInterface, stream);
    deserializer.NumberU32_Unbounded("client", m_Client);
    deserializer.NumberI32_Unbounded("player", m_Player);
    deserializer.NumberU32_Unbounded("turn", m_Turn);
    deserializer.ScriptVal("command", &m_Data);
    return pEnd;
}
Пример #22
0
TEST(SaveableOperators, VectorOperatorsEmpty)
{
    kv::FastSerializer serializer(1);
    QVector<qint32> vector;
    EXPECT_EQ(Hash(vector), 0);
    serializer << vector;

    kv::FastDeserializer deserializer(serializer.GetData(), serializer.GetIndex());
    QVector<qint32> other_vector;
    deserializer >> other_vector;

    EXPECT_TRUE(other_vector.isEmpty());
    EXPECT_EQ(Hash(other_vector), Hash(vector));
}
Пример #23
0
TEST(SaveableOperators, MapOperatorsEmpty)
{
    kv::FastSerializer serializer(1);
    QMap<qint32, qint32> map;
    EXPECT_EQ(Hash(map), 0);
    serializer << map;

    kv::FastDeserializer deserializer(serializer.GetData(), serializer.GetIndex());
    QMap<qint32, qint32> other_map;
    deserializer >> other_map;

    EXPECT_TRUE(other_map.isEmpty());
    EXPECT_EQ(Hash(other_map), Hash(map));
}
Пример #24
0
TEST(SaveableOperators, PairOperators)
{
    kv::FastSerializer serializer(1);
    QPair<qint32, qint32> pair{11, 12};
    EXPECT_EQ(Hash(pair), 23);
    serializer << pair;

    kv::FastDeserializer deserializer(serializer.GetData(), serializer.GetIndex());
    QPair<qint32, qint32> other_pair;
    deserializer >> other_pair;

    EXPECT_EQ(other_pair.first, 11);
    EXPECT_EQ(other_pair.second, 12);
    EXPECT_EQ(Hash(other_pair), Hash(pair));
}
Пример #25
0
void *sockets_recvSerialized(t_socket_client *client, void *(*deserializer)(t_socket_sbuffer*)){
	t_socket_buffer *buffer = sockets_recv(client);
	void *data = NULL;

	if( buffer != NULL ){
		t_socket_sbuffer sbuffer;
		sbuffer.size = buffer->size;
		sbuffer.serializated_data = malloc(buffer->size);
		memcpy(sbuffer.serializated_data, buffer->data, buffer->size);
		data = deserializer(&sbuffer);
		free(sbuffer.serializated_data);
		free(buffer);
	}
	return data;
}
Пример #26
0
void
BufferTextureHost::InitSize()
{
  if (mFormat == gfx::SurfaceFormat::YUV) {
    YCbCrImageDataDeserializer yuvDeserializer(GetBuffer(), GetBufferSize());
    if (yuvDeserializer.IsValid()) {
      mSize = yuvDeserializer.GetYSize();
    }
  } else if (mFormat != gfx::SurfaceFormat::UNKNOWN) {
    ImageDataDeserializer deserializer(GetBuffer(), GetBufferSize());
    if (deserializer.IsValid()) {
      mSize = deserializer.GetSize();
    }
  }
}
Пример #27
0
void testBinarySerializer() {
    Data originalData;
    originalData.key = 100;
    for (int i = 11; i < 20; ++i) {
        originalData.array.push_back(i);
    }

    BinarySerializer serializer;
    serializer << originalData;

    BinarySerializer deserializer((const char *) serializer.data(), serializer.size());
    Data targetData;
    deserializer >> targetData;

    checkEqualData(originalData, targetData);
}
Пример #28
0
    bool ModelDefinition::LoadFromNativeFile(const String &absolutePathIn)
    {
        // When loading from a native file, all we need to do is deserialize.
        bool successful = false;

        drfs_file* pFile;
        if (drfs_open(g_Context->GetVFS(), absolutePathIn.c_str(), DRFS_READ, &pFile) == drfs_success)
        {
            FileDeserializer deserializer(pFile);
            successful = this->Deserialize(deserializer);

            drfs_close(pFile);
        }

        return successful;
    }
Пример #29
0
unique_ptr<SpanTree> AnnotationDeserializer::readSpanTree() {
    VespaDocumentDeserializer deserializer(_repo, _stream, _version);

    StringFieldValue tree_name;
    deserializer.read(tree_name);
    _nodes.clear();
    SpanNode::UP root = readSpanNode();
    unique_ptr<SpanTree> span_tree(new SpanTree(tree_name.getValue(), std::move(root)));

    uint32_t annotation_count = getInt1_2_4Bytes(_stream);
    span_tree->reserveAnnotations(annotation_count);
    for (uint32_t i = 0; i < annotation_count; ++i) {
        readAnnotation(span_tree->annotation(i));
    }

    return span_tree;
}
Пример #30
0
void ExtensionListDialog::install()
{
    static QByteArray state;
    QFileDialog dlg(this);
    dlg.setFileMode(QFileDialog::ExistingFiles);
    dlg.setAcceptMode(QFileDialog::AcceptOpen);
    dlg.setDefaultSuffix("*.aeb");
    dlg.setConfirmOverwrite(false);
    dlg.setReadOnly(true);
    dlg.setResolveSymlinks(true);
    dlg.setFilters(QStringList() << "Extension Bundles (*.aeb)" << "Extension Metadata (install.rdf)" << "All Files (*)");
    dlg.setWindowTitle("Select extensions");
    dlg.restoreState(state);

    if (dlg.exec() == QDialog::Rejected)
    {
        return;
    }
    state = dlg.saveState();
    QStringList filenames = dlg.selectedFiles();

    AebListResource extensionRes; //manage lifetime of Aeb*'s that are allocated on the heap
    QList<Aeb*> extensions;
    foreach (QString filename, filenames)
    {
        extensionRes.push_back(new Aeb()); //take ownership
        AebIo deserializer(*extensionRes.back());
        std::string errMsg;
        if (!deserializer.fromFile(filename.toStdString(), errMsg))
        {
            QMessageBox::critical(Service<DesktopServices>()->getMainWidget(), "Extension Error",
                                  "Invalid extension bundle: " + filename + ".\n" + QString::fromStdString(errMsg));
        }
        else
        {
            if (!extensionRes.back()->checkTargetApplication(errMsg))
            {
                QMessageBox::critical(Service<DesktopServices>()->getMainWidget(), "Extension Error",
                                      "Invalid extension bundle: " + QString::fromStdString(extensionRes.back()->getName()) + ".\n" + QString::fromStdString(errMsg));
            }
            else
            {
                extensions.push_back(extensionRes.back());
            }
        }
    }