This is an automated email from the ASF dual-hosted git repository.

lostluck pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 42d79c2  [BEAM-9551] Environment PB Pointer cleanup (#11164)
42d79c2 is described below

commit 42d79c29949725b3afabfb3754bfb394be594460
Author: Robert Burke <[email protected]>
AuthorDate: Thu Mar 19 08:51:51 2020 -0700

    [BEAM-9551] Environment PB Pointer cleanup (#11164)
    
    * [GoSDK] Change CreateEnvironment to return pointer. Go Protos much prefer 
being pointers than values.
---
 sdks/go/pkg/beam/core/runtime/graphx/translate.go      | 10 ++++------
 sdks/go/pkg/beam/core/runtime/graphx/translate_test.go |  2 +-
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/sdks/go/pkg/beam/core/runtime/graphx/translate.go 
b/sdks/go/pkg/beam/core/runtime/graphx/translate.go
index c143487..e2f4a3a 100644
--- a/sdks/go/pkg/beam/core/runtime/graphx/translate.go
+++ b/sdks/go/pkg/beam/core/runtime/graphx/translate.go
@@ -71,8 +71,7 @@ func goCapabilities() []string {
        return append(capabilities, knownStandardCoders()...)
 }
 
-func CreateEnvironment(ctx context.Context, urn string, 
extractEnvironmentConfig func(context.Context) string) pb.Environment {
-       var environment pb.Environment
+func CreateEnvironment(ctx context.Context, urn string, 
extractEnvironmentConfig func(context.Context) string) *pb.Environment {
        switch urn {
        case "beam:env:process:v1":
                // TODO Support process based SDK Harness.
@@ -87,13 +86,12 @@ func CreateEnvironment(ctx context.Context, urn string, 
extractEnvironmentConfig
                        panic(fmt.Sprintf(
                                "Failed to serialize Environment payload %v for 
config %v: %v", payload, config, err))
                }
-               environment = pb.Environment{
+               return &pb.Environment{
                        Urn:          urn,
                        Payload:      serializedPayload,
                        Capabilities: goCapabilities(),
                }
        }
-       return environment
 }
 
 // TODO(herohde) 11/6/2017: move some of the configuration into the graph 
during construction.
@@ -101,7 +99,7 @@ func CreateEnvironment(ctx context.Context, urn string, 
extractEnvironmentConfig
 // Options for marshalling a graph into a model pipeline.
 type Options struct {
        // Environment used to run the user code.
-       Environment pb.Environment
+       Environment *pb.Environment
 }
 
 // Marshal converts a graph to a model pipeline.
@@ -497,7 +495,7 @@ func boolToBounded(bounded bool) pb.IsBounded_Enum {
 func (m *marshaller) addDefaultEnv() string {
        const id = "go"
        if _, exists := m.environments[id]; !exists {
-               m.environments[id] = &m.opt.Environment
+               m.environments[id] = m.opt.Environment
        }
        return id
 }
diff --git a/sdks/go/pkg/beam/core/runtime/graphx/translate_test.go 
b/sdks/go/pkg/beam/core/runtime/graphx/translate_test.go
index 4b31b33..02c6b8d 100644
--- a/sdks/go/pkg/beam/core/runtime/graphx/translate_test.go
+++ b/sdks/go/pkg/beam/core/runtime/graphx/translate_test.go
@@ -146,7 +146,7 @@ func TestMarshal(t *testing.T) {
                                t.Fatal(err)
                        }
                        p, err := graphx.Marshal(edges,
-                               &graphx.Options{Environment: 
pb.Environment{Urn: "beam:env:docker:v1", Payload: payload}})
+                               &graphx.Options{Environment: 
&pb.Environment{Urn: "beam:env:docker:v1", Payload: payload}})
                        if err != nil {
                                t.Fatal(err)
                        }

Reply via email to