[Spice-devel] [PATCH spice-streaming-agent v2 3/4] use std::string where it's easy to replace

Frediano Ziglio fziglio at redhat.com
Thu Jan 25 12:23:56 UTC 2018


> 
> It's a good practice to consistently use std::string in C++ when there
> are no special needs for a char *.
> 
> Signed-off-by: Lukáš Hrázký <lhrazky at redhat.com>
> ---
>  src/concrete-agent.cpp        | 10 +++++-----
>  src/concrete-agent.hpp        |  4 ++--
>  src/spice-streaming-agent.cpp |  6 +++---
>  3 files changed, 10 insertions(+), 10 deletions(-)
> 
> diff --git a/src/concrete-agent.cpp b/src/concrete-agent.cpp
> index 9f1295a..b7d4bfe 100644
> --- a/src/concrete-agent.cpp
> +++ b/src/concrete-agent.cpp
> @@ -56,11 +56,11 @@ void ConcreteAgent::AddOption(const char *name, const
> char *value)
>      options.insert(--options.end(), ConcreteConfigureOption(name, value));
>  }
>  
> -void ConcreteAgent::LoadPlugins(const char *directory)
> +void ConcreteAgent::LoadPlugins(const string &directory)
>  {
>      StaticPlugin::InitAll(*this);
>  
> -    string pattern = string(directory) + "/*.so";
> +    string pattern = directory + "/*.so";
>      glob_t globbuf;
>  
>      int glob_result = glob(pattern.c_str(), 0, NULL, &globbuf);
> @@ -77,12 +77,12 @@ void ConcreteAgent::LoadPlugins(const char *directory)
>      globfree(&globbuf);
>  }
>  
> -void ConcreteAgent::LoadPlugin(const char *plugin_filename)
> +void ConcreteAgent::LoadPlugin(const string &plugin_filename)
>  {
> -    void *dl = dlopen(plugin_filename, RTLD_LOCAL|RTLD_NOW);
> +    void *dl = dlopen(plugin_filename.c_str(), RTLD_LOCAL|RTLD_NOW);
>      if (!dl) {
>          syslog(LOG_ERR, "error loading plugin %s: %s",
> -               plugin_filename, dlerror());
> +               plugin_filename.c_str(), dlerror());
>          return;
>      }
>  
> diff --git a/src/concrete-agent.hpp b/src/concrete-agent.hpp
> index 828368b..2449cb3 100644
> --- a/src/concrete-agent.hpp
> +++ b/src/concrete-agent.hpp
> @@ -30,13 +30,13 @@ public:
>      }
>      void Register(Plugin& plugin) override;
>      const ConfigureOption* Options() const override;
> -    void LoadPlugins(const char *directory);
> +    void LoadPlugins(const std::string &directory);
>      // pointer must remain valid
>      void AddOption(const char *name, const char *value);
>      FrameCapture *GetBestFrameCapture();
>      bool PluginVersionIsCompatible(unsigned pluginVersion) const override;
>  private:
> -    void LoadPlugin(const char *plugin_filename);
> +    void LoadPlugin(const std::string &plugin_filename);
>      std::vector<std::shared_ptr<Plugin>> plugins;
>      std::vector<ConcreteConfigureOption> options;
>  };
> diff --git a/src/spice-streaming-agent.cpp b/src/spice-streaming-agent.cpp
> index f36921d..87e8fa3 100644
> --- a/src/spice-streaming-agent.cpp
> +++ b/src/spice-streaming-agent.cpp
> @@ -347,13 +347,13 @@ static void cursor_changes(Display *display, int
> event_base)
>  }
>  
>  static void
> -do_capture(const char *streamport, FILE *f_log)
> +do_capture(const string &streamport, FILE *f_log)
>  {
>      std::unique_ptr<FrameCapture> capture(agent.GetBestFrameCapture());
>      if (!capture)
>          throw std::runtime_error("cannot find a suitable capture system");
>  
> -    streamfd = open(streamport, O_RDWR);
> +    streamfd = open(streamport.c_str(), O_RDWR);
>      if (streamfd < 0)
>          // TODO was syslog(LOG_ERR, "Failed to open %s: %s\n", streamport,
>          strerror(errno));
>          throw std::runtime_error("failed to open streaming device");
> @@ -433,7 +433,7 @@ done:
>  
>  int main(int argc, char* argv[])
>  {
> -    const char *streamport = "/dev/virtio-ports/com.redhat.stream.0";
> +    string streamport = "/dev/virtio-ports/com.redhat.stream.0";
>      char opt;
>      const char *log_filename = NULL;
>      int logmask = LOG_UPTO(LOG_WARNING);

Acked-by: Frediano Ziglio <fziglio at redhat.com>

Frediano


More information about the Spice-devel mailing list