rsCppUtils.cpp revision 2abfcc6d129fe3defddef4540aa95cc445c03a7a
1f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams/* 2f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * Copyright (C) 2013 The Android Open Source Project 3f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * 4f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * you may not use this file except in compliance with the License. 6f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * You may obtain a copy of the License at 7f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * 8f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * http://www.apache.org/licenses/LICENSE-2.0 9f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * 10f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * Unless required by applicable law or agreed to in writing, software 11f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * See the License for the specific language governing permissions and 14f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams * limitations under the License. 15f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams */ 16f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams 17574854bcb2eb25a85b9b52faf2fb3e743fa7aa14Stephen Hines#include "rsUtils.h" 18f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams#include "rsCppUtils.h" 19f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams 202abfcc6d129fe3defddef4540aa95cc445c03a7aYang Ni#include <string> 212abfcc6d129fe3defddef4540aa95cc445c03a7aYang Ni 22a567cfab33f09f06efa0ad09e7cdbe3392385ceeElliott Hughes#include <string.h> 23a567cfab33f09f06efa0ad09e7cdbe3392385ceeElliott Hughes 24f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Samsnamespace android { 25f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Samsnamespace renderscript { 26f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams 27f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Samsconst char * rsuCopyString(const char *name) { 28f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams return rsuCopyString(name, strlen(name)); 29f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams} 30f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams 31f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Samsconst char * rsuCopyString(const char *name, size_t len) { 32f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams char *n = new char[len+1]; 33f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams memcpy(n, name, len); 34f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams n[len] = 0; 35f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams return n; 36f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams} 37f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams 382abfcc6d129fe3defddef4540aa95cc445c03a7aYang Niconst char* rsuJoinStrings(int n, const char* const* strs) { 392abfcc6d129fe3defddef4540aa95cc445c03a7aYang Ni std::string tmp; 402abfcc6d129fe3defddef4540aa95cc445c03a7aYang Ni for (int i = 0; i < n; i++) { 412abfcc6d129fe3defddef4540aa95cc445c03a7aYang Ni if (i > 0) { 422abfcc6d129fe3defddef4540aa95cc445c03a7aYang Ni tmp.append(" "); 432abfcc6d129fe3defddef4540aa95cc445c03a7aYang Ni } 442abfcc6d129fe3defddef4540aa95cc445c03a7aYang Ni tmp.append(strs[i]); 452abfcc6d129fe3defddef4540aa95cc445c03a7aYang Ni } 462abfcc6d129fe3defddef4540aa95cc445c03a7aYang Ni return strndup(tmp.c_str(), tmp.size()); 472abfcc6d129fe3defddef4540aa95cc445c03a7aYang Ni} 48f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams 49f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams} 50f313dc32d5ea68a7c48fb4ec6e131ec2fb97ce2dJason Sams} 51