| Index: ppapi/proxy/serialized_var.h
|
| diff --git a/ppapi/proxy/serialized_var.h b/ppapi/proxy/serialized_var.h
|
| index 98cafa0dac3afe009b54e821ec53dbaa063fa768..0b8e7966738b71246b6492e5727caf6dbc89a194 100644
|
| --- a/ppapi/proxy/serialized_var.h
|
| +++ b/ppapi/proxy/serialized_var.h
|
| @@ -80,12 +80,24 @@ class PPAPI_PROXY_EXPORT SerializedVar {
|
| void WriteToMessage(IPC::Message* m) const {
|
| inner_->WriteToMessage(m);
|
| }
|
| + // If ReadFromMessage has been called, WriteDataToMessage will write the var
|
| + // that has been read from ReadFromMessage back to a message. This is used
|
| + // when converting handles for use in NaCl.
|
| + void WriteDataToMessage(IPC::Message* m,
|
| + const HandleWriter& handle_writer) const {
|
| + inner_->WriteDataToMessage(m, handle_writer);
|
| + }
|
| bool ReadFromMessage(const IPC::Message* m, PickleIterator* iter) {
|
| return inner_->ReadFromMessage(m, iter);
|
| }
|
|
|
| - RawVarDataGraph* raw_var_data() const {
|
| - return inner_->raw_var_data();
|
| + bool is_valid_var() const {
|
| + return inner_->is_valid_var();
|
| + }
|
| +
|
| + // Returns the shared memory handles associated with this SerializedVar.
|
| + std::vector<SerializedHandle*> GetHandles() const {
|
| + return inner_->GetHandles();
|
| }
|
|
|
| protected:
|
| @@ -110,8 +122,13 @@ class PPAPI_PROXY_EXPORT SerializedVar {
|
| serialization_rules_ = serialization_rules;
|
| }
|
|
|
| - RawVarDataGraph* raw_var_data() {
|
| - return raw_var_data_.get();
|
| + bool is_valid_var() const {
|
| + return is_valid_var_;
|
| + }
|
| +
|
| + std::vector<SerializedHandle*> GetHandles() {
|
| + return (raw_var_data_ ? raw_var_data_->GetHandles() :
|
| + std::vector<SerializedHandle*>());
|
| }
|
|
|
| // See outer class's declarations above.
|
| @@ -124,6 +141,8 @@ class PPAPI_PROXY_EXPORT SerializedVar {
|
| void ForceSetVarValueForTest(PP_Var value);
|
|
|
| void WriteToMessage(IPC::Message* m) const;
|
| + void WriteDataToMessage(IPC::Message* m,
|
| + const HandleWriter& handle_writer) const;
|
| bool ReadFromMessage(const IPC::Message* m, PickleIterator* iter);
|
|
|
| // Sets the cleanup mode. See the CleanupMode enum below.
|
| @@ -162,6 +181,9 @@ class PPAPI_PROXY_EXPORT SerializedVar {
|
|
|
| CleanupMode cleanup_mode_;
|
|
|
| + // If the var is not properly serialized, this will be false.
|
| + bool is_valid_var_;
|
| +
|
| #ifndef NDEBUG
|
| // When being sent or received over IPC, we should only be serialized or
|
| // deserialized once. These flags help us assert this is true.
|
| @@ -342,6 +364,7 @@ class PPAPI_PROXY_EXPORT SerializedVarReceiveInput {
|
|
|
| PP_Var Get(Dispatcher* dispatcher);
|
| PP_Var GetForInstance(Dispatcher* dispatcher, PP_Instance instance);
|
| + bool is_valid_var() { return serialized_.is_valid_var(); }
|
|
|
| private:
|
| const SerializedVar& serialized_;
|
|
|