Fixes regarding to comments in ag/2839267

1. use struct {} to instantiate privacy fields for efficiency reason
2. use vector<uint8_t>* instead of vector<uint8_t>& to indicate the
caller knows the value gets changed.
3. binary search privay policy for sections

Bug: 65595927
Test: unit test covers
Change-Id: Ic58c2f607465d1a7f10352b9a38c3d8b1a5cf352
diff --git a/cmds/incidentd/src/Privacy.cpp b/cmds/incidentd/src/Privacy.cpp
index dbab548..e7969e7 100644
--- a/cmds/incidentd/src/Privacy.cpp
+++ b/cmds/incidentd/src/Privacy.cpp
@@ -16,6 +16,8 @@
 
 #include "Privacy.h"
 
+#include <stdlib.h>
+
 // DESTINATION enum value
 const uint8_t DEST_LOCAL = 0;
 const uint8_t DEST_EXPLICIT = 1;
@@ -25,33 +27,6 @@
 const uint8_t TYPE_STRING = 9;
 const uint8_t TYPE_MESSAGE = 11;
 
-Privacy::Privacy(uint32_t field_id, uint8_t type, uint8_t dest)
-    : field_id(field_id),
-      type(type),
-      children(NULL),
-      dest(dest),
-      patterns(NULL)
-{
-}
-
-Privacy::Privacy(uint32_t field_id, const Privacy** children)
-    : field_id(field_id),
-      type(TYPE_MESSAGE),
-      children(children),
-      dest(DEST_DEFAULT_VALUE), // this will be ignored
-      patterns(NULL)
-{
-}
-
-Privacy::Privacy(uint32_t field_id, uint8_t dest, const char** patterns)
-    : field_id(field_id),
-      type(TYPE_STRING),
-      children(NULL),
-      dest(dest),
-      patterns(patterns)
-{
-}
-
 bool
 Privacy::IsMessageType() const { return type == TYPE_MESSAGE; }