|  | // Copyright 2019 The Fuchsia Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include <lib/ui/scenic/cpp/view_ref_pair.h> | 
|  | #include <zircon/assert.h> | 
|  |  | 
|  | namespace scenic { | 
|  |  | 
|  | ViewRefPair ViewRefPair::New() { | 
|  | ViewRefPair ref_pair; | 
|  |  | 
|  | auto status = zx::eventpair::create(/*options*/ 0u, &ref_pair.control_ref.reference, | 
|  | &ref_pair.view_ref.reference); | 
|  | // Assert even in non-debug builds, because eventpair creation can fail under | 
|  | // normal operation.  Failure can occur for example, if the job creation | 
|  | // policy governing this process forbids eventpair creation. | 
|  | // | 
|  | // It is unlikely that a well-behaved Scenic client would crash here; if you | 
|  | // hit this, it means something is very abnormal. | 
|  | ZX_ASSERT(status == ZX_OK); | 
|  |  | 
|  | // Remove signaling from view_ref; Scenic requires it. | 
|  | ref_pair.view_ref.reference.replace(ZX_RIGHTS_BASIC, &ref_pair.view_ref.reference); | 
|  | return ref_pair; | 
|  | } | 
|  |  | 
|  | }  // namespace scenic |