Map Blob to Go `[]byte`.
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/df024469 Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/df024469 Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/df024469 Branch: refs/heads/master Commit: df0244695968125e31b2c2825cfb72ebf0c5951c Parents: 04a5731 Author: Marvin Humphrey <[email protected]> Authored: Thu Jul 30 18:10:35 2015 -0700 Committer: Marvin Humphrey <[email protected]> Committed: Fri Jul 31 11:06:32 2015 -0700 ---------------------------------------------------------------------- compiler/src/CFCGoFunc.c | 7 +++++++ compiler/src/CFCGoTypeMap.c | 3 +++ 2 files changed, 10 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/df024469/compiler/src/CFCGoFunc.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCGoFunc.c b/compiler/src/CFCGoFunc.c index 64f2255..80a6e8d 100644 --- a/compiler/src/CFCGoFunc.c +++ b/compiler/src/CFCGoFunc.c @@ -90,6 +90,7 @@ S_prep_start(CFCParcel *parcel, const char *name, CFCClass *invoker, char *convertible = NULL; if (CFCType_cfish_string(type)) { convertible = "String"; } else if (CFCType_cfish_vector(type)) { convertible = "Vector"; } + else if (CFCType_cfish_blob(type)) { convertible = "Blob"; } else { continue; } char pattern[] = "\t%sCF := (*C.cfish_%s)(%sGoTo%s(%s))\n"; @@ -172,6 +173,7 @@ S_prep_cfargs(CFCParcel *parcel, CFCClass *invoker, "(", go_name, ")", NULL); } else if ((CFCType_is_string_type(type) + || CFCType_cfish_blob(type) || CFCType_cfish_vector(type)) // Don't convert an invocant. && (targ != IS_METHOD || i != 0) @@ -234,6 +236,11 @@ CFCGoFunc_return_statement(CFCParcel *parcel, CFCType *return_type, "%s\treturn %sCFStringToGo(unsafe.Pointer(retvalCF))\n"; statement = CFCUtil_sprintf(pattern, maybe_decref, clownfish_dot); } + else if (CFCType_cfish_blob(return_type)) { + char pattern[] = + "%s\treturn %sBlobToGo(unsafe.Pointer(retvalCF))\n"; + statement = CFCUtil_sprintf(pattern, maybe_decref, clownfish_dot); + } else if (CFCType_cfish_vector(return_type)) { char pattern[] = "%s\treturn %sVectorToGo(unsafe.Pointer(retvalCF))\n"; http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/df024469/compiler/src/CFCGoTypeMap.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCGoTypeMap.c b/compiler/src/CFCGoTypeMap.c index 15e42a7..afd5345 100644 --- a/compiler/src/CFCGoTypeMap.c +++ b/compiler/src/CFCGoTypeMap.c @@ -96,6 +96,9 @@ CFCGoTypeMap_go_type_name(CFCType *type, CFCParcel *current_parcel) { if (CFCType_is_string_type(type)) { return CFCUtil_strdup("string"); } + else if (CFCType_cfish_blob(type)) { + return CFCUtil_strdup("[]byte"); + } else if (CFCType_cfish_vector(type)) { return CFCUtil_strdup("[]interface{}"); }
