diff --git a/tools/hdi-gen/ast/ast_smq_type.cpp b/tools/hdi-gen/ast/ast_smq_type.cpp index 068546e0..e6e317b1 100644 --- a/tools/hdi-gen/ast/ast_smq_type.cpp +++ b/tools/hdi-gen/ast/ast_smq_type.cpp @@ -44,7 +44,8 @@ String ASTSmqType::EmitCppType(TypeMode mode) const void ASTSmqType::EmitCppWriteVar(const String &parcelName, const String &name, StringBuilder &sb, const String &prefix, unsigned int innerLevel) const { - sb.Append(prefix).AppendFormat("if (!%s->IsGood() || %s->GetMeta() == nullptr || ", name.string(), name.string()); + sb.Append(prefix).AppendFormat("if (%s == nullptr || !%s->IsGood() || %s->GetMeta() == nullptr || ", name.string(), + name.string(), name.string()); sb.AppendFormat("!%s->GetMeta()->Marshalling(%s)) {\n", name.string(), parcelName.string()); sb.Append(prefix + TAB).AppendFormat("HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string()); sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n"); @@ -64,10 +65,14 @@ void ASTSmqType::EmitCppReadVar(const String &parcelName, const String &name, St sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n"); sb.Append(prefix).Append("}\n\n"); - sb.Append(prefix).AppendFormat( - "std::shared_ptr> %s = ", innerType_->EmitCppType().string(), name.string()); - sb.AppendFormat( - "std::make_shared>(*%s);\n", innerType_->EmitCppType().string(), metaVarName.string()); + if (initVariable) { + sb.Append(prefix).AppendFormat("%s %s = ", EmitCppType(TypeMode::LOCAL_VAR).string(), name.string()); + } else { + sb.Append(prefix).AppendFormat("%s = ", name.string()); + } + + sb.AppendFormat("std::make_shared>(*%s);\n", innerType_->EmitCppType().string(), + metaVarName.string()); } bool ASTAshmemType::IsAshmemType() @@ -104,7 +109,8 @@ String ASTAshmemType::EmitCppType(TypeMode mode) const void ASTAshmemType::EmitCppWriteVar(const String &parcelName, const String &name, StringBuilder &sb, const String &prefix, unsigned int innerLevel) const { - sb.Append(prefix).AppendFormat("if (!%s.WriteAshmem(%s)) {\n", parcelName.string(), name.string()); + sb.Append(prefix).AppendFormat("if (%s == nullptr || !%s.WriteAshmem(%s)) {\n", name.string(), parcelName.string(), + name.string()); sb.Append(prefix + TAB).AppendFormat("HDF_LOGE(\"%%{public}s: write %s failed!\", __func__);\n", name.string()); sb.Append(prefix + TAB).Append("return HDF_ERR_INVALID_PARAM;\n"); sb.Append(prefix).Append("}\n"); diff --git a/tools/hdi-gen/codegen/c_client_proxy_code_emitter.cpp b/tools/hdi-gen/codegen/c_client_proxy_code_emitter.cpp index 00f74bf4..126b5893 100644 --- a/tools/hdi-gen/codegen/c_client_proxy_code_emitter.cpp +++ b/tools/hdi-gen/codegen/c_client_proxy_code_emitter.cpp @@ -35,7 +35,7 @@ void CClientProxyCodeEmitter::EmitCode() void CClientProxyCodeEmitter::EmitProxySourceFile() { - String filePath = String::Format("%s/%s.c", directory_.string(), FileName(proxyName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.c", directory_.string(), FileName(proxyName_).string())); File file(filePath, File::WRITE); StringBuilder sb; @@ -121,10 +121,10 @@ void CClientProxyCodeEmitter::EmitProxyCallMethodImpl(StringBuilder &sb) String remoteName = "remote"; sb.Append(TAB).AppendFormat("struct HdfRemoteService *%s = self->AsObject(self);\n", remoteName.string()); - sb.Append(TAB).AppendFormat("if (%s == NULL\n", remoteName.string()); - sb.Append(TAB).Append(TAB).AppendFormat("|| %s->dispatcher == NULL\n", remoteName.string()); - sb.Append(TAB).Append(TAB).AppendFormat("|| %s->dispatcher->Dispatch == NULL\n", remoteName.string()); - sb.Append(TAB).Append(TAB).AppendFormat("|| %s->dispatcher->DispatchAsync == NULL) {\n", remoteName.string()); + sb.Append(TAB).AppendFormat("if (%s == NULL ||\n", remoteName.string()); + sb.Append(TAB).Append(TAB).AppendFormat("%s->dispatcher == NULL ||\n", remoteName.string()); + sb.Append(TAB).Append(TAB).AppendFormat("%s->dispatcher->Dispatch == NULL ||\n", remoteName.string()); + sb.Append(TAB).Append(TAB).AppendFormat("%s->dispatcher->DispatchAsync == NULL) {\n", remoteName.string()); sb.Append(TAB).Append(TAB).Append("HDF_LOGE(\"%{public}s: Invalid HdfRemoteService obj\", __func__);\n"); sb.Append(TAB).Append(TAB).Append("return HDF_ERR_INVALID_OBJECT;\n"); sb.Append(TAB).Append("}\n"); @@ -151,9 +151,9 @@ void CClientProxyCodeEmitter::EmitProxyKernelCallMethodImpl(StringBuilder &sb) baseName_.string(), baseName_.string(), remoteName.string()); sb.Append(TAB).AppendFormat("struct HdfIoService *%s = proxy->%s;\n", remoteName.string(), remoteName.string()); - sb.Append(TAB).AppendFormat("if (%s == NULL\n", remoteName.string()); - sb.Append(TAB).Append(TAB).AppendFormat("|| %s->dispatcher == NULL\n", remoteName.string()); - sb.Append(TAB).Append(TAB).AppendFormat("|| %s->dispatcher->Dispatch == NULL) {\n", remoteName.string()); + sb.Append(TAB).AppendFormat("if (%s == NULL ||\n", remoteName.string()); + sb.Append(TAB).Append(TAB).AppendFormat("%s->dispatcher == NULL ||\n", remoteName.string()); + sb.Append(TAB).Append(TAB).AppendFormat("%s->dispatcher->Dispatch == NULL) {\n", remoteName.string()); sb.Append(TAB).Append(TAB).Append("HDF_LOGE(\"%{public}s: Invalid HdfRemoteService obj\", __func__);\n"); sb.Append(TAB).Append(TAB).Append("return HDF_ERR_INVALID_OBJECT;\n"); sb.Append(TAB).Append("}\n\n"); diff --git a/tools/hdi-gen/codegen/c_custom_types_code_emitter.cpp b/tools/hdi-gen/codegen/c_custom_types_code_emitter.cpp index 434aaaea..bf3ce1c8 100644 --- a/tools/hdi-gen/codegen/c_custom_types_code_emitter.cpp +++ b/tools/hdi-gen/codegen/c_custom_types_code_emitter.cpp @@ -36,7 +36,7 @@ void CCustomTypesCodeEmitter::EmitCode() void CCustomTypesCodeEmitter::EmitCustomTypesHeaderFile() { - String filePath = String::Format("%s/%s.h", directory_.string(), FileName(baseName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.h", directory_.string(), FileName(baseName_).string())); File file(filePath, File::WRITE); StringBuilder sb; @@ -157,7 +157,7 @@ void CCustomTypesCodeEmitter::EmitCustomTypeFreeDecl(StringBuilder &sb, const Au void CCustomTypesCodeEmitter::EmitCustomTypesSourceFile() { - String filePath = String::Format("%s/%s.c", directory_.string(), FileName(baseName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.c", directory_.string(), FileName(baseName_).string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/c_interface_code_emitter.cpp b/tools/hdi-gen/codegen/c_interface_code_emitter.cpp index 9044f4fd..cde22667 100644 --- a/tools/hdi-gen/codegen/c_interface_code_emitter.cpp +++ b/tools/hdi-gen/codegen/c_interface_code_emitter.cpp @@ -35,7 +35,8 @@ void CInterfaceCodeEmitter::EmitCode() void CInterfaceCodeEmitter::EmitInterfaceHeaderFile() { - String filePath = String::Format("%s/%s.h", directory_.string(), FileName(interfaceName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.h", directory_.string(), + FileName(interfaceName_).string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/c_service_driver_code_emitter.cpp b/tools/hdi-gen/codegen/c_service_driver_code_emitter.cpp index a12e5e9b..65a34045 100644 --- a/tools/hdi-gen/codegen/c_service_driver_code_emitter.cpp +++ b/tools/hdi-gen/codegen/c_service_driver_code_emitter.cpp @@ -38,7 +38,8 @@ void CServiceDriverCodeEmitter::EmitCode() void CServiceDriverCodeEmitter::EmitDriverSourceFile() { - String filePath = String::Format("%s/%s.c", directory_.string(), FileName(baseName_ + "Driver").string()); + String filePath = File::AdapterPath(String::Format("%s/%s.c", directory_.string(), + FileName(baseName_ + "Driver").string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/c_service_impl_code_emitter.cpp b/tools/hdi-gen/codegen/c_service_impl_code_emitter.cpp index 2d2bcfe2..92a3bf3b 100644 --- a/tools/hdi-gen/codegen/c_service_impl_code_emitter.cpp +++ b/tools/hdi-gen/codegen/c_service_impl_code_emitter.cpp @@ -36,7 +36,8 @@ void CServiceImplCodeEmitter::EmitCode() void CServiceImplCodeEmitter::EmitServiceImplHeaderFile() { - String filePath = String::Format("%s/%s.h", directory_.string(), FileName(baseName_ + "Service").string()); + String filePath = File::AdapterPath(String::Format("%s/%s.h", directory_.string(), + FileName(baseName_ + "Service").string())); File file(filePath, File::WRITE); StringBuilder sb; @@ -83,7 +84,8 @@ void CServiceImplCodeEmitter::EmitServiceImplConstructDecl(StringBuilder &sb) void CServiceImplCodeEmitter::EmitServiceImplSourceFile() { - String filePath = String::Format("%s/%s.c", directory_.string(), FileName(baseName_ + "Service").string()); + String filePath = File::AdapterPath(String::Format("%s/%s.c", directory_.string(), + FileName(baseName_ + "Service").string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/c_service_stub_code_emitter.cpp b/tools/hdi-gen/codegen/c_service_stub_code_emitter.cpp index 9dca58dc..1ceadbce 100644 --- a/tools/hdi-gen/codegen/c_service_stub_code_emitter.cpp +++ b/tools/hdi-gen/codegen/c_service_stub_code_emitter.cpp @@ -37,7 +37,8 @@ void CServiceStubCodeEmitter::EmitCode() void CServiceStubCodeEmitter::EmitServiceStubHeaderFile() { - String filePath = String::Format("%s/%s.h", directory_.string(), FileName(stubName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.h", directory_.string(), + FileName(stubName_).string())); File file(filePath, File::WRITE); StringBuilder sb; @@ -106,7 +107,8 @@ void CServiceStubCodeEmitter::EmitCbServiceStubMethodsDcl(StringBuilder &sb) void CServiceStubCodeEmitter::EmitServiceStubSourceFile() { - String filePath = String::Format("%s/%s.c", directory_.string(), FileName(stubName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.c", directory_.string(), + FileName(stubName_).string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/code_emitter.cpp b/tools/hdi-gen/codegen/code_emitter.cpp index 55910c23..836d6fa0 100644 --- a/tools/hdi-gen/codegen/code_emitter.cpp +++ b/tools/hdi-gen/codegen/code_emitter.cpp @@ -105,12 +105,13 @@ bool CodeEmitter::NeedFlag(const AutoPtr &method) String CodeEmitter::GetFilePath(const String &outDir) { - String outPath = outDir.EndsWith(File::pathSeparator) ? outDir.Substring(0, outDir.GetLength() - 1) : outDir; + String outPath = outDir.EndsWith(File::separator) ? outDir.Substring(0, outDir.GetLength() - 1) : outDir; String packagePath = Options::GetInstance().GetPackagePath(ast_->GetPackageName()); - if (packagePath.EndsWith(File::pathSeparator)) { - return String::Format("%s/%s", outPath.string(), packagePath.string()); + if (packagePath.EndsWith(File::separator)) { + return File::AdapterPath(String::Format("%s%c%s", outPath.string(), File::separator, packagePath.string())); } else { - return String::Format("%s/%s/", outPath.string(), packagePath.string()); + return File::AdapterPath(String::Format("%s%c%s%c", outPath.string(), File::separator, packagePath.string(), + File::separator)); } } @@ -121,7 +122,7 @@ String CodeEmitter::PackageToFilePath(const String &packageName) for (auto iter = packageVec.begin(); iter != packageVec.end(); iter++) { filePath.Append(FileName(*iter)); if (iter != packageVec.end() - 1) { - filePath.Append("/"); + filePath.Append(File::separator); } } diff --git a/tools/hdi-gen/codegen/cpp_client_proxy_code_emitter.cpp b/tools/hdi-gen/codegen/cpp_client_proxy_code_emitter.cpp index 2a4b2fd4..cf5246a2 100644 --- a/tools/hdi-gen/codegen/cpp_client_proxy_code_emitter.cpp +++ b/tools/hdi-gen/codegen/cpp_client_proxy_code_emitter.cpp @@ -36,7 +36,8 @@ void CppClientProxyCodeEmitter::EmitCode() void CppClientProxyCodeEmitter::EmitProxyHeaderFile() { - String filePath = String::Format("%s/%s.h", directory_.string(), FileName(baseName_ + "Proxy").string()); + String filePath = File::AdapterPath(String::Format("%s/%s.h", directory_.string(), + FileName(baseName_ + "Proxy").string())); File file(filePath, File::WRITE); StringBuilder sb; @@ -144,7 +145,8 @@ void CppClientProxyCodeEmitter::EmitProxyMethodParameter( void CppClientProxyCodeEmitter::EmitProxySourceFile() { - String filePath = String::Format("%s/%s.cpp", directory_.string(), FileName(baseName_ + "Proxy").string()); + String filePath = File::AdapterPath(String::Format("%s/%s.cpp", directory_.string(), + FileName(baseName_ + "Proxy").string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/cpp_custom_types_code_emitter.cpp b/tools/hdi-gen/codegen/cpp_custom_types_code_emitter.cpp index dd5d8e72..ca4f8b50 100644 --- a/tools/hdi-gen/codegen/cpp_custom_types_code_emitter.cpp +++ b/tools/hdi-gen/codegen/cpp_custom_types_code_emitter.cpp @@ -35,7 +35,7 @@ void CppCustomTypesCodeEmitter::EmitCode() void CppCustomTypesCodeEmitter::EmitCustomTypesHeaderFile() { - String filePath = String::Format("%s/%s.h", directory_.string(), FileName(baseName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.h", directory_.string(), FileName(baseName_).string())); File file(filePath, File::WRITE); String marcoName = String::Format("%s.%s", ast_->GetPackageName().string(), baseName_.string()); StringBuilder sb; @@ -153,7 +153,8 @@ void CppCustomTypesCodeEmitter::EmitCustomTypeUnmarshallingDecl(StringBuilder &s void CppCustomTypesCodeEmitter::EmitCustomTypesSourceFile() { - String filePath = String::Format("%s/%s.cpp", directory_.string(), FileName(baseName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.cpp", directory_.string(), + FileName(baseName_).string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/cpp_interface_code_emitter.cpp b/tools/hdi-gen/codegen/cpp_interface_code_emitter.cpp index b370a4fa..9a768f69 100644 --- a/tools/hdi-gen/codegen/cpp_interface_code_emitter.cpp +++ b/tools/hdi-gen/codegen/cpp_interface_code_emitter.cpp @@ -35,7 +35,8 @@ void CppInterfaceCodeEmitter::EmitCode() void CppInterfaceCodeEmitter::EmitInterfaceHeaderFile() { - String filePath = String::Format("%s/%s.h", directory_.string(), FileName(interfaceName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.h", directory_.string(), + FileName(interfaceName_).string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/cpp_service_driver_code_emitter.cpp b/tools/hdi-gen/codegen/cpp_service_driver_code_emitter.cpp index da9e59b9..4fad17ba 100644 --- a/tools/hdi-gen/codegen/cpp_service_driver_code_emitter.cpp +++ b/tools/hdi-gen/codegen/cpp_service_driver_code_emitter.cpp @@ -38,7 +38,8 @@ void CppServiceDriverCodeEmitter::EmitCode() void CppServiceDriverCodeEmitter::EmitDriverSourceFile() { - String filePath = String::Format("%s/%s.cpp", directory_.string(), FileName(baseName_ + "Driver").string()); + String filePath = File::AdapterPath(String::Format("%s/%s.cpp", directory_.string(), + FileName(baseName_ + "Driver").string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/cpp_service_impl_code_emitter.cpp b/tools/hdi-gen/codegen/cpp_service_impl_code_emitter.cpp index 1e0ef8c8..8944082f 100644 --- a/tools/hdi-gen/codegen/cpp_service_impl_code_emitter.cpp +++ b/tools/hdi-gen/codegen/cpp_service_impl_code_emitter.cpp @@ -36,7 +36,8 @@ void CppServiceImplCodeEmitter::EmitCode() void CppServiceImplCodeEmitter::EmitImplHeaderFile() { - String filePath = String::Format("%s/%s.h", directory_.string(), FileName(baseName_ + "Service").string()); + String filePath = File::AdapterPath(String::Format("%s/%s.h", directory_.string(), + FileName(baseName_ + "Service").string())); File file(filePath, File::WRITE); StringBuilder sb; @@ -124,7 +125,8 @@ void CppServiceImplCodeEmitter::EmitServiceImplMethodDecl( void CppServiceImplCodeEmitter::EmitImplSourceFile() { - String filePath = String::Format("%s/%s.cpp", directory_.string(), FileName(baseName_ + "Service").string()); + String filePath = File::AdapterPath(String::Format("%s/%s.cpp", directory_.string(), + FileName(baseName_ + "Service").string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/cpp_service_stub_code_emitter.cpp b/tools/hdi-gen/codegen/cpp_service_stub_code_emitter.cpp index 4aea5a4d..8f6885a1 100644 --- a/tools/hdi-gen/codegen/cpp_service_stub_code_emitter.cpp +++ b/tools/hdi-gen/codegen/cpp_service_stub_code_emitter.cpp @@ -36,7 +36,7 @@ void CppServiceStubCodeEmitter::EmitCode() void CppServiceStubCodeEmitter::EmitStubHeaderFile() { - String filePath = String::Format("%s/%s.h", directory_.string(), FileName(stubName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.h", directory_.string(), FileName(stubName_).string())); File file(filePath, File::WRITE); StringBuilder sb; @@ -145,7 +145,8 @@ void CppServiceStubCodeEmitter::EmitStubPrivateData(StringBuilder &sb, const Str void CppServiceStubCodeEmitter::EmitStubSourceFile() { - String filePath = String::Format("%s/%s.cpp", directory_.string(), FileName(stubName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.cpp", directory_.string(), + FileName(stubName_).string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/java_client_interface_code_emitter.cpp b/tools/hdi-gen/codegen/java_client_interface_code_emitter.cpp index 07cc9c9a..4b7a97a6 100644 --- a/tools/hdi-gen/codegen/java_client_interface_code_emitter.cpp +++ b/tools/hdi-gen/codegen/java_client_interface_code_emitter.cpp @@ -35,7 +35,8 @@ void JavaClientInterfaceCodeEmitter::EmitCode() void JavaClientInterfaceCodeEmitter::EmitInterfaceFile() { - String filePath = String::Format("%s/%s.java", directory_.string(), FileName(interfaceName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.java", directory_.string(), + FileName(interfaceName_).string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/codegen/java_client_proxy_code_emitter.cpp b/tools/hdi-gen/codegen/java_client_proxy_code_emitter.cpp index 126635cf..438e0507 100644 --- a/tools/hdi-gen/codegen/java_client_proxy_code_emitter.cpp +++ b/tools/hdi-gen/codegen/java_client_proxy_code_emitter.cpp @@ -34,7 +34,8 @@ void JavaClientProxyCodeEmitter::EmitCode() void JavaClientProxyCodeEmitter::EmitProxyFile() { - String filePath = String::Format("%s/%s.java", directory_.string(), FileName(proxyName_).string()); + String filePath = File::AdapterPath(String::Format("%s/%s.java", directory_.string(), + FileName(proxyName_).string())); File file(filePath, File::WRITE); StringBuilder sb; diff --git a/tools/hdi-gen/parser/file_detail.cpp b/tools/hdi-gen/parser/file_detail.cpp index 9ee693f2..6815544d 100644 --- a/tools/hdi-gen/parser/file_detail.cpp +++ b/tools/hdi-gen/parser/file_detail.cpp @@ -15,11 +15,7 @@ namespace HDI { void FileDetail::SetFilePath(const String &filePath) { idlFilePath_ = filePath; -#ifdef __MINGW32__ - int index = idlFilePath_.LastIndexOf('\\'); -#else - int index = idlFilePath_.LastIndexOf('/'); -#endif + int index = idlFilePath_.LastIndexOf(File::separator); int end = idlFilePath_.LastIndexOf(".idl"); idlName_ = idlFilePath_.Substring((index == -1) ? 0 : (index + 1), end); } diff --git a/tools/hdi-gen/parser/parser.cpp b/tools/hdi-gen/parser/parser.cpp index b1677c60..7b804651 100644 --- a/tools/hdi-gen/parser/parser.cpp +++ b/tools/hdi-gen/parser/parser.cpp @@ -1492,7 +1492,7 @@ bool Parser::CheckPackageName(const String &filePath, const String &packageName) { String pkgToPath = Options::GetInstance().GetPackagePath(packageName); - int index = filePath.LastIndexOf(File::pathSeparator); + int index = filePath.LastIndexOf(File::separator); if (index == -1) { return false; } diff --git a/tools/hdi-gen/util/file.cpp b/tools/hdi-gen/util/file.cpp index f4ae51fa..7d10be44 100644 --- a/tools/hdi-gen/util/file.cpp +++ b/tools/hdi-gen/util/file.cpp @@ -184,14 +184,7 @@ bool File::CreateParentDir(const String &path) } int pos = 1; - -#ifndef __MINGW32__ - char Separator = '/'; -#else - char Separator = '\\'; -#endif - - while ((pos = path.IndexOf(Separator, pos)) != -1) { + while ((pos = path.IndexOf(File::separator, pos)) != -1) { String partPath = path.Substring(0, pos); struct stat st; if (stat(partPath.string(), &st) < 0) { @@ -217,7 +210,7 @@ bool File::CreateParentDir(const String &path) String File::AdapterPath(const String &path) { #ifndef __MINGW32__ - return path; + return path.Replace('\\', '/'); #else return path.Replace('/', '\\'); #endif diff --git a/tools/hdi-gen/util/file.h b/tools/hdi-gen/util/file.h index 83a0e3ee..aac8d5a1 100644 --- a/tools/hdi-gen/util/file.h +++ b/tools/hdi-gen/util/file.h @@ -70,9 +70,9 @@ public: static constexpr unsigned int APPEND = 0x4; #ifndef __MINGW32__ - static constexpr char pathSeparator = '/'; + static constexpr char separator = '/'; #else - static constexpr char pathSeparator = '\\'; + static constexpr char separator = '\\'; #endif private: diff --git a/tools/hdi-gen/util/options.cpp b/tools/hdi-gen/util/options.cpp index 0796afb5..af17f133 100644 --- a/tools/hdi-gen/util/options.cpp +++ b/tools/hdi-gen/util/options.cpp @@ -264,14 +264,14 @@ String Options::GetPackagePath(const String &package) } if (rootPackage.IsEmpty()) { - return package.Replace('.', File::pathSeparator); + return package.Replace('.', File::separator); } - if (rootPath.EndsWith(File::pathSeparator)) { + if (rootPath.EndsWith(File::separator)) { rootPath = rootPath.Substring(0, rootPath.GetLength() - 1); } - return package.Replace(rootPackage, rootPath).Replace('.', File::pathSeparator); + return package.Replace(rootPackage, rootPath).Replace('.', File::separator); } } // namespace HDI } // namespace OHOS \ No newline at end of file