// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: CoreDump.proto

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "CoreDump.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)

namespace mozilla {
namespace devtools {
namespace protobuf {

namespace {

const ::google::protobuf::Descriptor* Metadata_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  Metadata_reflection_ = NULL;
const ::google::protobuf::Descriptor* StackFrame_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  StackFrame_reflection_ = NULL;
struct StackFrameOneofInstance {
  const ::mozilla::devtools::protobuf::StackFrame_Data* data_;
  ::google::protobuf::uint64 ref_;
}* StackFrame_default_oneof_instance_ = NULL;
const ::google::protobuf::Descriptor* StackFrame_Data_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  StackFrame_Data_reflection_ = NULL;
struct StackFrame_DataOneofInstance {
  const ::std::string* source_;
  ::google::protobuf::uint64 sourceref_;
  const ::std::string* functiondisplayname_;
  ::google::protobuf::uint64 functiondisplaynameref_;
}* StackFrame_Data_default_oneof_instance_ = NULL;
const ::google::protobuf::Descriptor* Node_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  Node_reflection_ = NULL;
struct NodeOneofInstance {
  const ::std::string* typename__;
  ::google::protobuf::uint64 typenameref_;
  const ::std::string* jsobjectclassname_;
  ::google::protobuf::uint64 jsobjectclassnameref_;
  const ::std::string* scriptfilename_;
  ::google::protobuf::uint64 scriptfilenameref_;
}* Node_default_oneof_instance_ = NULL;
const ::google::protobuf::Descriptor* Edge_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  Edge_reflection_ = NULL;
struct EdgeOneofInstance {
  const ::std::string* name_;
  ::google::protobuf::uint64 nameref_;
}* Edge_default_oneof_instance_ = NULL;

}  // namespace


void protobuf_AssignDesc_CoreDump_2eproto() {
  protobuf_AddDesc_CoreDump_2eproto();
  const ::google::protobuf::FileDescriptor* file =
    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
      "CoreDump.proto");
  GOOGLE_CHECK(file != NULL);
  Metadata_descriptor_ = file->message_type(0);
  static const int Metadata_offsets_[1] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Metadata, timestamp_),
  };
  Metadata_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      Metadata_descriptor_,
      Metadata::default_instance_,
      Metadata_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Metadata, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Metadata, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(Metadata));
  StackFrame_descriptor_ = file->message_type(1);
  static const int StackFrame_offsets_[3] = {
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(StackFrame_default_oneof_instance_, data_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(StackFrame_default_oneof_instance_, ref_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame, StackFrameType_),
  };
  StackFrame_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      StackFrame_descriptor_,
      StackFrame::default_instance_,
      StackFrame_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame, _unknown_fields_),
      -1,
      StackFrame_default_oneof_instance_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame, _oneof_case_[0]),
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(StackFrame));
  StackFrame_Data_descriptor_ = StackFrame_descriptor_->nested_type(0);
  static const int StackFrame_Data_offsets_[12] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame_Data, id_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame_Data, parent_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame_Data, line_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame_Data, column_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(StackFrame_Data_default_oneof_instance_, source_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(StackFrame_Data_default_oneof_instance_, sourceref_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(StackFrame_Data_default_oneof_instance_, functiondisplayname_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(StackFrame_Data_default_oneof_instance_, functiondisplaynameref_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame_Data, issystem_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame_Data, isselfhosted_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame_Data, SourceOrRef_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame_Data, FunctionDisplayNameOrRef_),
  };
  StackFrame_Data_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      StackFrame_Data_descriptor_,
      StackFrame_Data::default_instance_,
      StackFrame_Data_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame_Data, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame_Data, _unknown_fields_),
      -1,
      StackFrame_Data_default_oneof_instance_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StackFrame_Data, _oneof_case_[0]),
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(StackFrame_Data));
  Node_descriptor_ = file->message_type(2);
  static const int Node_offsets_[14] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Node, id_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Node_default_oneof_instance_, typename__),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Node_default_oneof_instance_, typenameref_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Node, size_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Node, edges_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Node, allocationstack_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Node_default_oneof_instance_, jsobjectclassname_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Node_default_oneof_instance_, jsobjectclassnameref_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Node, coarsetype_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Node_default_oneof_instance_, scriptfilename_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Node_default_oneof_instance_, scriptfilenameref_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Node, TypeNameOrRef_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Node, JSObjectClassNameOrRef_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Node, ScriptFilenameOrRef_),
  };
  Node_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      Node_descriptor_,
      Node::default_instance_,
      Node_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Node, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Node, _unknown_fields_),
      -1,
      Node_default_oneof_instance_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Node, _oneof_case_[0]),
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(Node));
  Edge_descriptor_ = file->message_type(3);
  static const int Edge_offsets_[4] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Edge, referent_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Edge_default_oneof_instance_, name_),
    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Edge_default_oneof_instance_, nameref_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Edge, EdgeNameOrRef_),
  };
  Edge_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      Edge_descriptor_,
      Edge::default_instance_,
      Edge_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Edge, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Edge, _unknown_fields_),
      -1,
      Edge_default_oneof_instance_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Edge, _oneof_case_[0]),
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(Edge));
}

namespace {

GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
inline void protobuf_AssignDescriptorsOnce() {
  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
                 &protobuf_AssignDesc_CoreDump_2eproto);
}

void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    Metadata_descriptor_, &Metadata::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    StackFrame_descriptor_, &StackFrame::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    StackFrame_Data_descriptor_, &StackFrame_Data::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    Node_descriptor_, &Node::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    Edge_descriptor_, &Edge::default_instance());
}

}  // namespace

void protobuf_ShutdownFile_CoreDump_2eproto() {
  delete Metadata::default_instance_;
  delete Metadata_reflection_;
  delete StackFrame::default_instance_;
  delete StackFrame_default_oneof_instance_;
  delete StackFrame_reflection_;
  delete StackFrame_Data::default_instance_;
  delete StackFrame_Data_default_oneof_instance_;
  delete StackFrame_Data_reflection_;
  delete Node::default_instance_;
  delete Node_default_oneof_instance_;
  delete Node_reflection_;
  delete Edge::default_instance_;
  delete Edge_default_oneof_instance_;
  delete Edge_reflection_;
}

void protobuf_AddDesc_CoreDump_2eproto() {
  static bool already_here = false;
  if (already_here) return;
  already_here = true;
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
    "\n\016CoreDump.proto\022\031mozilla.devtools.proto"
    "buf\"\035\n\010Metadata\022\021\n\ttimeStamp\030\001 \001(\004\"\216\003\n\nS"
    "tackFrame\022:\n\004data\030\001 \001(\0132*.mozilla.devtoo"
    "ls.protobuf.StackFrame.DataH\000\022\r\n\003ref\030\002 \001"
    "(\004H\000\032\242\002\n\004Data\022\n\n\002id\030\001 \001(\004\0225\n\006parent\030\002 \001("
    "\0132%.mozilla.devtools.protobuf.StackFrame"
    "\022\014\n\004line\030\003 \001(\r\022\016\n\006column\030\004 \001(\r\022\020\n\006source"
    "\030\005 \001(\014H\000\022\023\n\tsourceRef\030\006 \001(\004H\000\022\035\n\023functio"
    "nDisplayName\030\007 \001(\014H\001\022 \n\026functionDisplayN"
    "ameRef\030\010 \001(\004H\001\022\020\n\010isSystem\030\t \001(\010\022\024\n\014isSe"
    "lfHosted\030\n \001(\010B\r\n\013SourceOrRefB\032\n\030Functio"
    "nDisplayNameOrRefB\020\n\016StackFrameType\"\210\003\n\004"
    "Node\022\n\n\002id\030\001 \001(\004\022\022\n\010typeName\030\002 \001(\014H\000\022\025\n\013"
    "typeNameRef\030\003 \001(\004H\000\022\014\n\004size\030\004 \001(\004\022.\n\005edg"
    "es\030\005 \003(\0132\037.mozilla.devtools.protobuf.Edg"
    "e\022>\n\017allocationStack\030\006 \001(\0132%.mozilla.dev"
    "tools.protobuf.StackFrame\022\033\n\021jsObjectCla"
    "ssName\030\007 \001(\014H\001\022\036\n\024jsObjectClassNameRef\030\010"
    " \001(\004H\001\022\025\n\ncoarseType\030\t \001(\r:\0010\022\030\n\016scriptF"
    "ilename\030\n \001(\014H\002\022\033\n\021scriptFilenameRef\030\013 \001"
    "(\004H\002B\017\n\rTypeNameOrRefB\030\n\026JSObjectClassNa"
    "meOrRefB\025\n\023ScriptFilenameOrRef\"L\n\004Edge\022\020"
    "\n\010referent\030\001 \001(\004\022\016\n\004name\030\002 \001(\014H\000\022\021\n\007name"
    "Ref\030\003 \001(\004H\000B\017\n\rEdgeNameOrRef", 948);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "CoreDump.proto", &protobuf_RegisterTypes);
  Metadata::default_instance_ = new Metadata();
  StackFrame::default_instance_ = new StackFrame();
  StackFrame_default_oneof_instance_ = new StackFrameOneofInstance;
  StackFrame_Data::default_instance_ = new StackFrame_Data();
  StackFrame_Data_default_oneof_instance_ = new StackFrame_DataOneofInstance;
  Node::default_instance_ = new Node();
  Node_default_oneof_instance_ = new NodeOneofInstance;
  Edge::default_instance_ = new Edge();
  Edge_default_oneof_instance_ = new EdgeOneofInstance;
  Metadata::default_instance_->InitAsDefaultInstance();
  StackFrame::default_instance_->InitAsDefaultInstance();
  StackFrame_Data::default_instance_->InitAsDefaultInstance();
  Node::default_instance_->InitAsDefaultInstance();
  Edge::default_instance_->InitAsDefaultInstance();
  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_CoreDump_2eproto);
}

// Force AddDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer_CoreDump_2eproto {
  StaticDescriptorInitializer_CoreDump_2eproto() {
    protobuf_AddDesc_CoreDump_2eproto();
  }
} static_descriptor_initializer_CoreDump_2eproto_;

// ===================================================================

#ifndef _MSC_VER
const int Metadata::kTimeStampFieldNumber;
#endif  // !_MSC_VER

Metadata::Metadata()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:mozilla.devtools.protobuf.Metadata)
}

void Metadata::InitAsDefaultInstance() {
}

Metadata::Metadata(const Metadata& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:mozilla.devtools.protobuf.Metadata)
}

void Metadata::SharedCtor() {
  _cached_size_ = 0;
  timestamp_ = GOOGLE_ULONGLONG(0);
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

Metadata::~Metadata() {
  // @@protoc_insertion_point(destructor:mozilla.devtools.protobuf.Metadata)
  SharedDtor();
}

void Metadata::SharedDtor() {
  if (this != default_instance_) {
  }
}

void Metadata::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Metadata::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return Metadata_descriptor_;
}

const Metadata& Metadata::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_CoreDump_2eproto();
  return *default_instance_;
}

Metadata* Metadata::default_instance_ = NULL;

Metadata* Metadata::New() const {
  return new Metadata;
}

void Metadata::Clear() {
  timestamp_ = GOOGLE_ULONGLONG(0);
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool Metadata::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:mozilla.devtools.protobuf.Metadata)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional uint64 timeStamp = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &timestamp_)));
          set_has_timestamp();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:mozilla.devtools.protobuf.Metadata)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:mozilla.devtools.protobuf.Metadata)
  return false;
#undef DO_
}

void Metadata::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:mozilla.devtools.protobuf.Metadata)
  // optional uint64 timeStamp = 1;
  if (has_timestamp()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(1, this->timestamp(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:mozilla.devtools.protobuf.Metadata)
}

::google::protobuf::uint8* Metadata::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:mozilla.devtools.protobuf.Metadata)
  // optional uint64 timeStamp = 1;
  if (has_timestamp()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(1, this->timestamp(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.devtools.protobuf.Metadata)
  return target;
}

int Metadata::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional uint64 timeStamp = 1;
    if (has_timestamp()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->timestamp());
    }

  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Metadata::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const Metadata* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const Metadata*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void Metadata::MergeFrom(const Metadata& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_timestamp()) {
      set_timestamp(from.timestamp());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void Metadata::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Metadata::CopyFrom(const Metadata& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Metadata::IsInitialized() const {

  return true;
}

void Metadata::Swap(Metadata* other) {
  if (other != this) {
    std::swap(timestamp_, other->timestamp_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata Metadata::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = Metadata_descriptor_;
  metadata.reflection = Metadata_reflection_;
  return metadata;
}


// ===================================================================

#ifndef _MSC_VER
const int StackFrame_Data::kIdFieldNumber;
const int StackFrame_Data::kParentFieldNumber;
const int StackFrame_Data::kLineFieldNumber;
const int StackFrame_Data::kColumnFieldNumber;
const int StackFrame_Data::kSourceFieldNumber;
const int StackFrame_Data::kSourceRefFieldNumber;
const int StackFrame_Data::kFunctionDisplayNameFieldNumber;
const int StackFrame_Data::kFunctionDisplayNameRefFieldNumber;
const int StackFrame_Data::kIsSystemFieldNumber;
const int StackFrame_Data::kIsSelfHostedFieldNumber;
#endif  // !_MSC_VER

StackFrame_Data::StackFrame_Data()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:mozilla.devtools.protobuf.StackFrame.Data)
}

void StackFrame_Data::InitAsDefaultInstance() {
  parent_ = const_cast< ::mozilla::devtools::protobuf::StackFrame*>(&::mozilla::devtools::protobuf::StackFrame::default_instance());
  StackFrame_Data_default_oneof_instance_->source_ = &::google::protobuf::internal::GetEmptyStringAlreadyInited();
  StackFrame_Data_default_oneof_instance_->sourceref_ = GOOGLE_ULONGLONG(0);
  StackFrame_Data_default_oneof_instance_->functiondisplayname_ = &::google::protobuf::internal::GetEmptyStringAlreadyInited();
  StackFrame_Data_default_oneof_instance_->functiondisplaynameref_ = GOOGLE_ULONGLONG(0);
}

StackFrame_Data::StackFrame_Data(const StackFrame_Data& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:mozilla.devtools.protobuf.StackFrame.Data)
}

void StackFrame_Data::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  id_ = GOOGLE_ULONGLONG(0);
  parent_ = NULL;
  line_ = 0u;
  column_ = 0u;
  issystem_ = false;
  isselfhosted_ = false;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  clear_has_SourceOrRef();
  clear_has_FunctionDisplayNameOrRef();
}

StackFrame_Data::~StackFrame_Data() {
  // @@protoc_insertion_point(destructor:mozilla.devtools.protobuf.StackFrame.Data)
  SharedDtor();
}

void StackFrame_Data::SharedDtor() {
  if (has_SourceOrRef()) {
    clear_SourceOrRef();
  }
  if (has_FunctionDisplayNameOrRef()) {
    clear_FunctionDisplayNameOrRef();
  }
  if (this != default_instance_) {
    delete parent_;
  }
}

void StackFrame_Data::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* StackFrame_Data::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return StackFrame_Data_descriptor_;
}

const StackFrame_Data& StackFrame_Data::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_CoreDump_2eproto();
  return *default_instance_;
}

StackFrame_Data* StackFrame_Data::default_instance_ = NULL;

StackFrame_Data* StackFrame_Data::New() const {
  return new StackFrame_Data;
}

void StackFrame_Data::clear_SourceOrRef() {
  switch(SourceOrRef_case()) {
    case kSource: {
      delete SourceOrRef_.source_;
      break;
    }
    case kSourceRef: {
      // No need to clear
      break;
    }
    case SOURCEORREF_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = SOURCEORREF_NOT_SET;
}

void StackFrame_Data::clear_FunctionDisplayNameOrRef() {
  switch(FunctionDisplayNameOrRef_case()) {
    case kFunctionDisplayName: {
      delete FunctionDisplayNameOrRef_.functiondisplayname_;
      break;
    }
    case kFunctionDisplayNameRef: {
      // No need to clear
      break;
    }
    case FUNCTIONDISPLAYNAMEORREF_NOT_SET: {
      break;
    }
  }
  _oneof_case_[1] = FUNCTIONDISPLAYNAMEORREF_NOT_SET;
}


void StackFrame_Data::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<StackFrame_Data*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 15) {
    ZR_(line_, column_);
    id_ = GOOGLE_ULONGLONG(0);
    if (has_parent()) {
      if (parent_ != NULL) parent_->::mozilla::devtools::protobuf::StackFrame::Clear();
    }
  }
  ZR_(issystem_, isselfhosted_);

#undef OFFSET_OF_FIELD_
#undef ZR_

  clear_SourceOrRef();
  clear_FunctionDisplayNameOrRef();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool StackFrame_Data::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:mozilla.devtools.protobuf.StackFrame.Data)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional uint64 id = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &id_)));
          set_has_id();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_parent;
        break;
      }

      // optional .mozilla.devtools.protobuf.StackFrame parent = 2;
      case 2: {
        if (tag == 18) {
         parse_parent:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_parent()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_line;
        break;
      }

      // optional uint32 line = 3;
      case 3: {
        if (tag == 24) {
         parse_line:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &line_)));
          set_has_line();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(32)) goto parse_column;
        break;
      }

      // optional uint32 column = 4;
      case 4: {
        if (tag == 32) {
         parse_column:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &column_)));
          set_has_column();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_source;
        break;
      }

      // optional bytes source = 5;
      case 5: {
        if (tag == 42) {
         parse_source:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_source()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(48)) goto parse_sourceRef;
        break;
      }

      // optional uint64 sourceRef = 6;
      case 6: {
        if (tag == 48) {
         parse_sourceRef:
          clear_SourceOrRef();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &SourceOrRef_.sourceref_)));
          set_has_sourceref();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(58)) goto parse_functionDisplayName;
        break;
      }

      // optional bytes functionDisplayName = 7;
      case 7: {
        if (tag == 58) {
         parse_functionDisplayName:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_functiondisplayname()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(64)) goto parse_functionDisplayNameRef;
        break;
      }

      // optional uint64 functionDisplayNameRef = 8;
      case 8: {
        if (tag == 64) {
         parse_functionDisplayNameRef:
          clear_FunctionDisplayNameOrRef();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &FunctionDisplayNameOrRef_.functiondisplaynameref_)));
          set_has_functiondisplaynameref();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(72)) goto parse_isSystem;
        break;
      }

      // optional bool isSystem = 9;
      case 9: {
        if (tag == 72) {
         parse_isSystem:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &issystem_)));
          set_has_issystem();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(80)) goto parse_isSelfHosted;
        break;
      }

      // optional bool isSelfHosted = 10;
      case 10: {
        if (tag == 80) {
         parse_isSelfHosted:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &isselfhosted_)));
          set_has_isselfhosted();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:mozilla.devtools.protobuf.StackFrame.Data)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:mozilla.devtools.protobuf.StackFrame.Data)
  return false;
#undef DO_
}

void StackFrame_Data::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:mozilla.devtools.protobuf.StackFrame.Data)
  // optional uint64 id = 1;
  if (has_id()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(1, this->id(), output);
  }

  // optional .mozilla.devtools.protobuf.StackFrame parent = 2;
  if (has_parent()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, this->parent(), output);
  }

  // optional uint32 line = 3;
  if (has_line()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->line(), output);
  }

  // optional uint32 column = 4;
  if (has_column()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(4, this->column(), output);
  }

  // optional bytes source = 5;
  if (has_source()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      5, this->source(), output);
  }

  // optional uint64 sourceRef = 6;
  if (has_sourceref()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(6, this->sourceref(), output);
  }

  // optional bytes functionDisplayName = 7;
  if (has_functiondisplayname()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      7, this->functiondisplayname(), output);
  }

  // optional uint64 functionDisplayNameRef = 8;
  if (has_functiondisplaynameref()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(8, this->functiondisplaynameref(), output);
  }

  // optional bool isSystem = 9;
  if (has_issystem()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(9, this->issystem(), output);
  }

  // optional bool isSelfHosted = 10;
  if (has_isselfhosted()) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(10, this->isselfhosted(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:mozilla.devtools.protobuf.StackFrame.Data)
}

::google::protobuf::uint8* StackFrame_Data::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:mozilla.devtools.protobuf.StackFrame.Data)
  // optional uint64 id = 1;
  if (has_id()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(1, this->id(), target);
  }

  // optional .mozilla.devtools.protobuf.StackFrame parent = 2;
  if (has_parent()) {
    target = ::google::protobuf::internal::WireFormatLite::
      WriteMessageNoVirtualToArray(
        2, this->parent(), target);
  }

  // optional uint32 line = 3;
  if (has_line()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->line(), target);
  }

  // optional uint32 column = 4;
  if (has_column()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(4, this->column(), target);
  }

  // optional bytes source = 5;
  if (has_source()) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        5, this->source(), target);
  }

  // optional uint64 sourceRef = 6;
  if (has_sourceref()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(6, this->sourceref(), target);
  }

  // optional bytes functionDisplayName = 7;
  if (has_functiondisplayname()) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        7, this->functiondisplayname(), target);
  }

  // optional uint64 functionDisplayNameRef = 8;
  if (has_functiondisplaynameref()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(8, this->functiondisplaynameref(), target);
  }

  // optional bool isSystem = 9;
  if (has_issystem()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(9, this->issystem(), target);
  }

  // optional bool isSelfHosted = 10;
  if (has_isselfhosted()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(10, this->isselfhosted(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.devtools.protobuf.StackFrame.Data)
  return target;
}

int StackFrame_Data::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional uint64 id = 1;
    if (has_id()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->id());
    }

    // optional .mozilla.devtools.protobuf.StackFrame parent = 2;
    if (has_parent()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->parent());
    }

    // optional uint32 line = 3;
    if (has_line()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->line());
    }

    // optional uint32 column = 4;
    if (has_column()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->column());
    }

  }
  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    // optional bool isSystem = 9;
    if (has_issystem()) {
      total_size += 1 + 1;
    }

    // optional bool isSelfHosted = 10;
    if (has_isselfhosted()) {
      total_size += 1 + 1;
    }

  }
  switch (SourceOrRef_case()) {
    // optional bytes source = 5;
    case kSource: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->source());
      break;
    }
    // optional uint64 sourceRef = 6;
    case kSourceRef: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->sourceref());
      break;
    }
    case SOURCEORREF_NOT_SET: {
      break;
    }
  }
  switch (FunctionDisplayNameOrRef_case()) {
    // optional bytes functionDisplayName = 7;
    case kFunctionDisplayName: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->functiondisplayname());
      break;
    }
    // optional uint64 functionDisplayNameRef = 8;
    case kFunctionDisplayNameRef: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->functiondisplaynameref());
      break;
    }
    case FUNCTIONDISPLAYNAMEORREF_NOT_SET: {
      break;
    }
  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void StackFrame_Data::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const StackFrame_Data* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const StackFrame_Data*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void StackFrame_Data::MergeFrom(const StackFrame_Data& from) {
  GOOGLE_CHECK_NE(&from, this);
  switch (from.SourceOrRef_case()) {
    case kSource: {
      set_source(from.source());
      break;
    }
    case kSourceRef: {
      set_sourceref(from.sourceref());
      break;
    }
    case SOURCEORREF_NOT_SET: {
      break;
    }
  }
  switch (from.FunctionDisplayNameOrRef_case()) {
    case kFunctionDisplayName: {
      set_functiondisplayname(from.functiondisplayname());
      break;
    }
    case kFunctionDisplayNameRef: {
      set_functiondisplaynameref(from.functiondisplaynameref());
      break;
    }
    case FUNCTIONDISPLAYNAMEORREF_NOT_SET: {
      break;
    }
  }
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_id()) {
      set_id(from.id());
    }
    if (from.has_parent()) {
      mutable_parent()->::mozilla::devtools::protobuf::StackFrame::MergeFrom(from.parent());
    }
    if (from.has_line()) {
      set_line(from.line());
    }
    if (from.has_column()) {
      set_column(from.column());
    }
  }
  if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    if (from.has_issystem()) {
      set_issystem(from.issystem());
    }
    if (from.has_isselfhosted()) {
      set_isselfhosted(from.isselfhosted());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void StackFrame_Data::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void StackFrame_Data::CopyFrom(const StackFrame_Data& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool StackFrame_Data::IsInitialized() const {

  return true;
}

void StackFrame_Data::Swap(StackFrame_Data* other) {
  if (other != this) {
    std::swap(id_, other->id_);
    std::swap(parent_, other->parent_);
    std::swap(line_, other->line_);
    std::swap(column_, other->column_);
    std::swap(issystem_, other->issystem_);
    std::swap(isselfhosted_, other->isselfhosted_);
    std::swap(SourceOrRef_, other->SourceOrRef_);
    std::swap(_oneof_case_[0], other->_oneof_case_[0]);
    std::swap(FunctionDisplayNameOrRef_, other->FunctionDisplayNameOrRef_);
    std::swap(_oneof_case_[1], other->_oneof_case_[1]);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata StackFrame_Data::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = StackFrame_Data_descriptor_;
  metadata.reflection = StackFrame_Data_reflection_;
  return metadata;
}


// -------------------------------------------------------------------

#ifndef _MSC_VER
const int StackFrame::kDataFieldNumber;
const int StackFrame::kRefFieldNumber;
#endif  // !_MSC_VER

StackFrame::StackFrame()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:mozilla.devtools.protobuf.StackFrame)
}

void StackFrame::InitAsDefaultInstance() {
  StackFrame_default_oneof_instance_->data_ = const_cast< ::mozilla::devtools::protobuf::StackFrame_Data*>(&::mozilla::devtools::protobuf::StackFrame_Data::default_instance());
  StackFrame_default_oneof_instance_->ref_ = GOOGLE_ULONGLONG(0);
}

StackFrame::StackFrame(const StackFrame& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:mozilla.devtools.protobuf.StackFrame)
}

void StackFrame::SharedCtor() {
  _cached_size_ = 0;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  clear_has_StackFrameType();
}

StackFrame::~StackFrame() {
  // @@protoc_insertion_point(destructor:mozilla.devtools.protobuf.StackFrame)
  SharedDtor();
}

void StackFrame::SharedDtor() {
  if (has_StackFrameType()) {
    clear_StackFrameType();
  }
  if (this != default_instance_) {
  }
}

void StackFrame::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* StackFrame::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return StackFrame_descriptor_;
}

const StackFrame& StackFrame::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_CoreDump_2eproto();
  return *default_instance_;
}

StackFrame* StackFrame::default_instance_ = NULL;

StackFrame* StackFrame::New() const {
  return new StackFrame;
}

void StackFrame::clear_StackFrameType() {
  switch(StackFrameType_case()) {
    case kData: {
      delete StackFrameType_.data_;
      break;
    }
    case kRef: {
      // No need to clear
      break;
    }
    case STACKFRAMETYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = STACKFRAMETYPE_NOT_SET;
}


void StackFrame::Clear() {
  clear_StackFrameType();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool StackFrame::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:mozilla.devtools.protobuf.StackFrame)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .mozilla.devtools.protobuf.StackFrame.Data data = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_data()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_ref;
        break;
      }

      // optional uint64 ref = 2;
      case 2: {
        if (tag == 16) {
         parse_ref:
          clear_StackFrameType();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &StackFrameType_.ref_)));
          set_has_ref();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:mozilla.devtools.protobuf.StackFrame)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:mozilla.devtools.protobuf.StackFrame)
  return false;
#undef DO_
}

void StackFrame::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:mozilla.devtools.protobuf.StackFrame)
  // optional .mozilla.devtools.protobuf.StackFrame.Data data = 1;
  if (has_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->data(), output);
  }

  // optional uint64 ref = 2;
  if (has_ref()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(2, this->ref(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:mozilla.devtools.protobuf.StackFrame)
}

::google::protobuf::uint8* StackFrame::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:mozilla.devtools.protobuf.StackFrame)
  // optional .mozilla.devtools.protobuf.StackFrame.Data data = 1;
  if (has_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      WriteMessageNoVirtualToArray(
        1, this->data(), target);
  }

  // optional uint64 ref = 2;
  if (has_ref()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(2, this->ref(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.devtools.protobuf.StackFrame)
  return target;
}

int StackFrame::ByteSize() const {
  int total_size = 0;

  switch (StackFrameType_case()) {
    // optional .mozilla.devtools.protobuf.StackFrame.Data data = 1;
    case kData: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->data());
      break;
    }
    // optional uint64 ref = 2;
    case kRef: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->ref());
      break;
    }
    case STACKFRAMETYPE_NOT_SET: {
      break;
    }
  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void StackFrame::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const StackFrame* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const StackFrame*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void StackFrame::MergeFrom(const StackFrame& from) {
  GOOGLE_CHECK_NE(&from, this);
  switch (from.StackFrameType_case()) {
    case kData: {
      mutable_data()->::mozilla::devtools::protobuf::StackFrame_Data::MergeFrom(from.data());
      break;
    }
    case kRef: {
      set_ref(from.ref());
      break;
    }
    case STACKFRAMETYPE_NOT_SET: {
      break;
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void StackFrame::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void StackFrame::CopyFrom(const StackFrame& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool StackFrame::IsInitialized() const {

  return true;
}

void StackFrame::Swap(StackFrame* other) {
  if (other != this) {
    std::swap(StackFrameType_, other->StackFrameType_);
    std::swap(_oneof_case_[0], other->_oneof_case_[0]);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata StackFrame::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = StackFrame_descriptor_;
  metadata.reflection = StackFrame_reflection_;
  return metadata;
}


// ===================================================================

#ifndef _MSC_VER
const int Node::kIdFieldNumber;
const int Node::kTypeNameFieldNumber;
const int Node::kTypeNameRefFieldNumber;
const int Node::kSizeFieldNumber;
const int Node::kEdgesFieldNumber;
const int Node::kAllocationStackFieldNumber;
const int Node::kJsObjectClassNameFieldNumber;
const int Node::kJsObjectClassNameRefFieldNumber;
const int Node::kCoarseTypeFieldNumber;
const int Node::kScriptFilenameFieldNumber;
const int Node::kScriptFilenameRefFieldNumber;
#endif  // !_MSC_VER

Node::Node()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:mozilla.devtools.protobuf.Node)
}

void Node::InitAsDefaultInstance() {
  Node_default_oneof_instance_->typename__ = &::google::protobuf::internal::GetEmptyStringAlreadyInited();
  Node_default_oneof_instance_->typenameref_ = GOOGLE_ULONGLONG(0);
  allocationstack_ = const_cast< ::mozilla::devtools::protobuf::StackFrame*>(&::mozilla::devtools::protobuf::StackFrame::default_instance());
  Node_default_oneof_instance_->jsobjectclassname_ = &::google::protobuf::internal::GetEmptyStringAlreadyInited();
  Node_default_oneof_instance_->jsobjectclassnameref_ = GOOGLE_ULONGLONG(0);
  Node_default_oneof_instance_->scriptfilename_ = &::google::protobuf::internal::GetEmptyStringAlreadyInited();
  Node_default_oneof_instance_->scriptfilenameref_ = GOOGLE_ULONGLONG(0);
}

Node::Node(const Node& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:mozilla.devtools.protobuf.Node)
}

void Node::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  id_ = GOOGLE_ULONGLONG(0);
  size_ = GOOGLE_ULONGLONG(0);
  allocationstack_ = NULL;
  coarsetype_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  clear_has_TypeNameOrRef();
  clear_has_JSObjectClassNameOrRef();
  clear_has_ScriptFilenameOrRef();
}

Node::~Node() {
  // @@protoc_insertion_point(destructor:mozilla.devtools.protobuf.Node)
  SharedDtor();
}

void Node::SharedDtor() {
  if (has_TypeNameOrRef()) {
    clear_TypeNameOrRef();
  }
  if (has_JSObjectClassNameOrRef()) {
    clear_JSObjectClassNameOrRef();
  }
  if (has_ScriptFilenameOrRef()) {
    clear_ScriptFilenameOrRef();
  }
  if (this != default_instance_) {
    delete allocationstack_;
  }
}

void Node::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Node::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return Node_descriptor_;
}

const Node& Node::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_CoreDump_2eproto();
  return *default_instance_;
}

Node* Node::default_instance_ = NULL;

Node* Node::New() const {
  return new Node;
}

void Node::clear_TypeNameOrRef() {
  switch(TypeNameOrRef_case()) {
    case kTypeName: {
      delete TypeNameOrRef_.typename__;
      break;
    }
    case kTypeNameRef: {
      // No need to clear
      break;
    }
    case TYPENAMEORREF_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = TYPENAMEORREF_NOT_SET;
}

void Node::clear_JSObjectClassNameOrRef() {
  switch(JSObjectClassNameOrRef_case()) {
    case kJsObjectClassName: {
      delete JSObjectClassNameOrRef_.jsobjectclassname_;
      break;
    }
    case kJsObjectClassNameRef: {
      // No need to clear
      break;
    }
    case JSOBJECTCLASSNAMEORREF_NOT_SET: {
      break;
    }
  }
  _oneof_case_[1] = JSOBJECTCLASSNAMEORREF_NOT_SET;
}

void Node::clear_ScriptFilenameOrRef() {
  switch(ScriptFilenameOrRef_case()) {
    case kScriptFilename: {
      delete ScriptFilenameOrRef_.scriptfilename_;
      break;
    }
    case kScriptFilenameRef: {
      // No need to clear
      break;
    }
    case SCRIPTFILENAMEORREF_NOT_SET: {
      break;
    }
  }
  _oneof_case_[2] = SCRIPTFILENAMEORREF_NOT_SET;
}


void Node::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<Node*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 41) {
    ZR_(id_, size_);
    if (has_allocationstack()) {
      if (allocationstack_ != NULL) allocationstack_->::mozilla::devtools::protobuf::StackFrame::Clear();
    }
  }
  coarsetype_ = 0u;

#undef OFFSET_OF_FIELD_
#undef ZR_

  edges_.Clear();
  clear_TypeNameOrRef();
  clear_JSObjectClassNameOrRef();
  clear_ScriptFilenameOrRef();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool Node::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:mozilla.devtools.protobuf.Node)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional uint64 id = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &id_)));
          set_has_id();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_typeName;
        break;
      }

      // optional bytes typeName = 2;
      case 2: {
        if (tag == 18) {
         parse_typeName:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_typename_()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_typeNameRef;
        break;
      }

      // optional uint64 typeNameRef = 3;
      case 3: {
        if (tag == 24) {
         parse_typeNameRef:
          clear_TypeNameOrRef();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &TypeNameOrRef_.typenameref_)));
          set_has_typenameref();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(32)) goto parse_size;
        break;
      }

      // optional uint64 size = 4;
      case 4: {
        if (tag == 32) {
         parse_size:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &size_)));
          set_has_size();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_edges;
        break;
      }

      // repeated .mozilla.devtools.protobuf.Edge edges = 5;
      case 5: {
        if (tag == 42) {
         parse_edges:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_edges()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_edges;
        if (input->ExpectTag(50)) goto parse_allocationStack;
        break;
      }

      // optional .mozilla.devtools.protobuf.StackFrame allocationStack = 6;
      case 6: {
        if (tag == 50) {
         parse_allocationStack:
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_allocationstack()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(58)) goto parse_jsObjectClassName;
        break;
      }

      // optional bytes jsObjectClassName = 7;
      case 7: {
        if (tag == 58) {
         parse_jsObjectClassName:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_jsobjectclassname()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(64)) goto parse_jsObjectClassNameRef;
        break;
      }

      // optional uint64 jsObjectClassNameRef = 8;
      case 8: {
        if (tag == 64) {
         parse_jsObjectClassNameRef:
          clear_JSObjectClassNameOrRef();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &JSObjectClassNameOrRef_.jsobjectclassnameref_)));
          set_has_jsobjectclassnameref();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(72)) goto parse_coarseType;
        break;
      }

      // optional uint32 coarseType = 9 [default = 0];
      case 9: {
        if (tag == 72) {
         parse_coarseType:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &coarsetype_)));
          set_has_coarsetype();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(82)) goto parse_scriptFilename;
        break;
      }

      // optional bytes scriptFilename = 10;
      case 10: {
        if (tag == 82) {
         parse_scriptFilename:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_scriptfilename()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(88)) goto parse_scriptFilenameRef;
        break;
      }

      // optional uint64 scriptFilenameRef = 11;
      case 11: {
        if (tag == 88) {
         parse_scriptFilenameRef:
          clear_ScriptFilenameOrRef();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &ScriptFilenameOrRef_.scriptfilenameref_)));
          set_has_scriptfilenameref();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:mozilla.devtools.protobuf.Node)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:mozilla.devtools.protobuf.Node)
  return false;
#undef DO_
}

void Node::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:mozilla.devtools.protobuf.Node)
  // optional uint64 id = 1;
  if (has_id()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(1, this->id(), output);
  }

  // optional bytes typeName = 2;
  if (has_typename_()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->typename_(), output);
  }

  // optional uint64 typeNameRef = 3;
  if (has_typenameref()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(3, this->typenameref(), output);
  }

  // optional uint64 size = 4;
  if (has_size()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(4, this->size(), output);
  }

  // repeated .mozilla.devtools.protobuf.Edge edges = 5;
  for (int i = 0; i < this->edges_size(); i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, this->edges(i), output);
  }

  // optional .mozilla.devtools.protobuf.StackFrame allocationStack = 6;
  if (has_allocationstack()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, this->allocationstack(), output);
  }

  // optional bytes jsObjectClassName = 7;
  if (has_jsobjectclassname()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      7, this->jsobjectclassname(), output);
  }

  // optional uint64 jsObjectClassNameRef = 8;
  if (has_jsobjectclassnameref()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(8, this->jsobjectclassnameref(), output);
  }

  // optional uint32 coarseType = 9 [default = 0];
  if (has_coarsetype()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(9, this->coarsetype(), output);
  }

  // optional bytes scriptFilename = 10;
  if (has_scriptfilename()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      10, this->scriptfilename(), output);
  }

  // optional uint64 scriptFilenameRef = 11;
  if (has_scriptfilenameref()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(11, this->scriptfilenameref(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:mozilla.devtools.protobuf.Node)
}

::google::protobuf::uint8* Node::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:mozilla.devtools.protobuf.Node)
  // optional uint64 id = 1;
  if (has_id()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(1, this->id(), target);
  }

  // optional bytes typeName = 2;
  if (has_typename_()) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        2, this->typename_(), target);
  }

  // optional uint64 typeNameRef = 3;
  if (has_typenameref()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(3, this->typenameref(), target);
  }

  // optional uint64 size = 4;
  if (has_size()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(4, this->size(), target);
  }

  // repeated .mozilla.devtools.protobuf.Edge edges = 5;
  for (int i = 0; i < this->edges_size(); i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      WriteMessageNoVirtualToArray(
        5, this->edges(i), target);
  }

  // optional .mozilla.devtools.protobuf.StackFrame allocationStack = 6;
  if (has_allocationstack()) {
    target = ::google::protobuf::internal::WireFormatLite::
      WriteMessageNoVirtualToArray(
        6, this->allocationstack(), target);
  }

  // optional bytes jsObjectClassName = 7;
  if (has_jsobjectclassname()) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        7, this->jsobjectclassname(), target);
  }

  // optional uint64 jsObjectClassNameRef = 8;
  if (has_jsobjectclassnameref()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(8, this->jsobjectclassnameref(), target);
  }

  // optional uint32 coarseType = 9 [default = 0];
  if (has_coarsetype()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(9, this->coarsetype(), target);
  }

  // optional bytes scriptFilename = 10;
  if (has_scriptfilename()) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        10, this->scriptfilename(), target);
  }

  // optional uint64 scriptFilenameRef = 11;
  if (has_scriptfilenameref()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(11, this->scriptfilenameref(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.devtools.protobuf.Node)
  return target;
}

int Node::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional uint64 id = 1;
    if (has_id()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->id());
    }

    // optional uint64 size = 4;
    if (has_size()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->size());
    }

    // optional .mozilla.devtools.protobuf.StackFrame allocationStack = 6;
    if (has_allocationstack()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->allocationstack());
    }

  }
  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    // optional uint32 coarseType = 9 [default = 0];
    if (has_coarsetype()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->coarsetype());
    }

  }
  // repeated .mozilla.devtools.protobuf.Edge edges = 5;
  total_size += 1 * this->edges_size();
  for (int i = 0; i < this->edges_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        this->edges(i));
  }

  switch (TypeNameOrRef_case()) {
    // optional bytes typeName = 2;
    case kTypeName: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->typename_());
      break;
    }
    // optional uint64 typeNameRef = 3;
    case kTypeNameRef: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->typenameref());
      break;
    }
    case TYPENAMEORREF_NOT_SET: {
      break;
    }
  }
  switch (JSObjectClassNameOrRef_case()) {
    // optional bytes jsObjectClassName = 7;
    case kJsObjectClassName: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->jsobjectclassname());
      break;
    }
    // optional uint64 jsObjectClassNameRef = 8;
    case kJsObjectClassNameRef: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->jsobjectclassnameref());
      break;
    }
    case JSOBJECTCLASSNAMEORREF_NOT_SET: {
      break;
    }
  }
  switch (ScriptFilenameOrRef_case()) {
    // optional bytes scriptFilename = 10;
    case kScriptFilename: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->scriptfilename());
      break;
    }
    // optional uint64 scriptFilenameRef = 11;
    case kScriptFilenameRef: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->scriptfilenameref());
      break;
    }
    case SCRIPTFILENAMEORREF_NOT_SET: {
      break;
    }
  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Node::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const Node* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const Node*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void Node::MergeFrom(const Node& from) {
  GOOGLE_CHECK_NE(&from, this);
  edges_.MergeFrom(from.edges_);
  switch (from.TypeNameOrRef_case()) {
    case kTypeName: {
      set_typename_(from.typename_());
      break;
    }
    case kTypeNameRef: {
      set_typenameref(from.typenameref());
      break;
    }
    case TYPENAMEORREF_NOT_SET: {
      break;
    }
  }
  switch (from.JSObjectClassNameOrRef_case()) {
    case kJsObjectClassName: {
      set_jsobjectclassname(from.jsobjectclassname());
      break;
    }
    case kJsObjectClassNameRef: {
      set_jsobjectclassnameref(from.jsobjectclassnameref());
      break;
    }
    case JSOBJECTCLASSNAMEORREF_NOT_SET: {
      break;
    }
  }
  switch (from.ScriptFilenameOrRef_case()) {
    case kScriptFilename: {
      set_scriptfilename(from.scriptfilename());
      break;
    }
    case kScriptFilenameRef: {
      set_scriptfilenameref(from.scriptfilenameref());
      break;
    }
    case SCRIPTFILENAMEORREF_NOT_SET: {
      break;
    }
  }
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_id()) {
      set_id(from.id());
    }
    if (from.has_size()) {
      set_size(from.size());
    }
    if (from.has_allocationstack()) {
      mutable_allocationstack()->::mozilla::devtools::protobuf::StackFrame::MergeFrom(from.allocationstack());
    }
  }
  if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
    if (from.has_coarsetype()) {
      set_coarsetype(from.coarsetype());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void Node::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Node::CopyFrom(const Node& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Node::IsInitialized() const {

  return true;
}

void Node::Swap(Node* other) {
  if (other != this) {
    std::swap(id_, other->id_);
    std::swap(size_, other->size_);
    edges_.Swap(&other->edges_);
    std::swap(allocationstack_, other->allocationstack_);
    std::swap(coarsetype_, other->coarsetype_);
    std::swap(TypeNameOrRef_, other->TypeNameOrRef_);
    std::swap(_oneof_case_[0], other->_oneof_case_[0]);
    std::swap(JSObjectClassNameOrRef_, other->JSObjectClassNameOrRef_);
    std::swap(_oneof_case_[1], other->_oneof_case_[1]);
    std::swap(ScriptFilenameOrRef_, other->ScriptFilenameOrRef_);
    std::swap(_oneof_case_[2], other->_oneof_case_[2]);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata Node::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = Node_descriptor_;
  metadata.reflection = Node_reflection_;
  return metadata;
}


// ===================================================================

#ifndef _MSC_VER
const int Edge::kReferentFieldNumber;
const int Edge::kNameFieldNumber;
const int Edge::kNameRefFieldNumber;
#endif  // !_MSC_VER

Edge::Edge()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:mozilla.devtools.protobuf.Edge)
}

void Edge::InitAsDefaultInstance() {
  Edge_default_oneof_instance_->name_ = &::google::protobuf::internal::GetEmptyStringAlreadyInited();
  Edge_default_oneof_instance_->nameref_ = GOOGLE_ULONGLONG(0);
}

Edge::Edge(const Edge& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:mozilla.devtools.protobuf.Edge)
}

void Edge::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  referent_ = GOOGLE_ULONGLONG(0);
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  clear_has_EdgeNameOrRef();
}

Edge::~Edge() {
  // @@protoc_insertion_point(destructor:mozilla.devtools.protobuf.Edge)
  SharedDtor();
}

void Edge::SharedDtor() {
  if (has_EdgeNameOrRef()) {
    clear_EdgeNameOrRef();
  }
  if (this != default_instance_) {
  }
}

void Edge::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Edge::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return Edge_descriptor_;
}

const Edge& Edge::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_CoreDump_2eproto();
  return *default_instance_;
}

Edge* Edge::default_instance_ = NULL;

Edge* Edge::New() const {
  return new Edge;
}

void Edge::clear_EdgeNameOrRef() {
  switch(EdgeNameOrRef_case()) {
    case kName: {
      delete EdgeNameOrRef_.name_;
      break;
    }
    case kNameRef: {
      // No need to clear
      break;
    }
    case EDGENAMEORREF_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = EDGENAMEORREF_NOT_SET;
}


void Edge::Clear() {
  referent_ = GOOGLE_ULONGLONG(0);
  clear_EdgeNameOrRef();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool Edge::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:mozilla.devtools.protobuf.Edge)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional uint64 referent = 1;
      case 1: {
        if (tag == 8) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &referent_)));
          set_has_referent();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(18)) goto parse_name;
        break;
      }

      // optional bytes name = 2;
      case 2: {
        if (tag == 18) {
         parse_name:
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_name()));
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_nameRef;
        break;
      }

      // optional uint64 nameRef = 3;
      case 3: {
        if (tag == 24) {
         parse_nameRef:
          clear_EdgeNameOrRef();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
                 input, &EdgeNameOrRef_.nameref_)));
          set_has_nameref();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:mozilla.devtools.protobuf.Edge)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:mozilla.devtools.protobuf.Edge)
  return false;
#undef DO_
}

void Edge::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:mozilla.devtools.protobuf.Edge)
  // optional uint64 referent = 1;
  if (has_referent()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(1, this->referent(), output);
  }

  // optional bytes name = 2;
  if (has_name()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->name(), output);
  }

  // optional uint64 nameRef = 3;
  if (has_nameref()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt64(3, this->nameref(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:mozilla.devtools.protobuf.Edge)
}

::google::protobuf::uint8* Edge::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:mozilla.devtools.protobuf.Edge)
  // optional uint64 referent = 1;
  if (has_referent()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(1, this->referent(), target);
  }

  // optional bytes name = 2;
  if (has_name()) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        2, this->name(), target);
  }

  // optional uint64 nameRef = 3;
  if (has_nameref()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(3, this->nameref(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mozilla.devtools.protobuf.Edge)
  return target;
}

int Edge::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional uint64 referent = 1;
    if (has_referent()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->referent());
    }

  }
  switch (EdgeNameOrRef_case()) {
    // optional bytes name = 2;
    case kName: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->name());
      break;
    }
    // optional uint64 nameRef = 3;
    case kNameRef: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt64Size(
          this->nameref());
      break;
    }
    case EDGENAMEORREF_NOT_SET: {
      break;
    }
  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Edge::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const Edge* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const Edge*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void Edge::MergeFrom(const Edge& from) {
  GOOGLE_CHECK_NE(&from, this);
  switch (from.EdgeNameOrRef_case()) {
    case kName: {
      set_name(from.name());
      break;
    }
    case kNameRef: {
      set_nameref(from.nameref());
      break;
    }
    case EDGENAMEORREF_NOT_SET: {
      break;
    }
  }
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_referent()) {
      set_referent(from.referent());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void Edge::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Edge::CopyFrom(const Edge& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Edge::IsInitialized() const {

  return true;
}

void Edge::Swap(Edge* other) {
  if (other != this) {
    std::swap(referent_, other->referent_);
    std::swap(EdgeNameOrRef_, other->EdgeNameOrRef_);
    std::swap(_oneof_case_[0], other->_oneof_case_[0]);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata Edge::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = Edge_descriptor_;
  metadata.reflection = Edge_reflection_;
  return metadata;
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace protobuf
}  // namespace devtools
}  // namespace mozilla

// @@protoc_insertion_point(global_scope)
