summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ppapi/api/pp_var.idl31
-rw-r--r--ppapi/api/ppb_var.idl20
-rw-r--r--ppapi/c/pp_var.h33
-rw-r--r--ppapi/c/ppb_var.h20
4 files changed, 69 insertions, 35 deletions
diff --git a/ppapi/api/pp_var.idl b/ppapi/api/pp_var.idl
index 425d99b..545585d 100644
--- a/ppapi/api/pp_var.idl
+++ b/ppapi/api/pp_var.idl
@@ -45,15 +45,15 @@ enum PP_VarType {
* The Var represents a string. The <code>as_id</code> field is used to
* identify the string, which may be created and retrieved from the
* <code>PPB_Var</code> interface. These objects are reference counted, so
- * AddRef and Release must be used properly to avoid memory leaks.
+ * AddRef() and Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_STRING = 5,
/**
* Represents a JavaScript object. This vartype is not currently usable
* from modules, although it is used internally for some tasks. These objects
- * are reference counted, so AddRef and Release must be used properly to avoid
- * memory leaks.
+ * are reference counted, so AddRef() and Release() must be used properly to
+ * avoid memory leaks.
*/
PP_VARTYPE_OBJECT = 6,
@@ -61,7 +61,7 @@ enum PP_VarType {
* Represents an array of Vars. The <code>as_id</code> field is used to
* identify the array, which may be created and manipulated from the
* <code>PPB_VarArray</code> interface. These objects are reference counted,
- * so AddRef and Release must be used properly to avoid memory leaks.
+ * so AddRef() and Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_ARRAY = 7,
@@ -69,7 +69,8 @@ enum PP_VarType {
* Represents a mapping from strings to Vars. The <code>as_id</code> field is
* used to identify the dictionary, which may be created and manipulated from
* the <code>PPB_VarDictionary</code> interface. These objects are reference
- * counted, so AddRef and Release must be used properly to avoid memory leaks.
+ * counted, so AddRef() and Release() must be used properly to avoid memory
+ * leaks.
*/
PP_VARTYPE_DICTIONARY = 8,
@@ -78,15 +79,25 @@ enum PP_VarType {
* represents Typed Arrays in JavaScript. Unlike JavaScript 'Array', it is
* only meant to contain basic numeric types, and is always stored
* contiguously. See PPB_VarArrayBuffer_Dev for functions special to
- * ArrayBuffer vars. These objects are reference counted, so AddRef and
- * Release must be used properly to avoid memory leaks.
+ * ArrayBuffer vars. These objects are reference counted, so AddRef() and
+ * Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_ARRAY_BUFFER = 9,
/**
- * Resources are not currently supported but will be added in the future
- * These objects are reference counted, so AddRef and Release must be used
- * properly to avoid memory leaks.
+ * This type allows the <code>PP_Var</code> to wrap a <code>PP_Resource
+ * </code>. This can be useful for sending or receiving some types of
+ * <code>PP_Resource</code> using <code>PPB_Messaging</code> or
+ * <code>PPP_Messaging</code>.
+ *
+ * These objects are reference counted, so AddRef() and Release() must be used
+ * properly to avoid memory leaks. Under normal circumstances, the
+ * <code>PP_Var</code> will implicitly hold a reference count on the
+ * <code>PP_Resource</code> on your behalf. For example, if you call
+ * VarFromResource(), it implicitly calls PPB_Core::AddRefResource() on the
+ * <code>PP_Resource</code>. Likewise, PPB_Var::Release() on a Resource
+ * <code>PP_Var</code> will invoke PPB_Core::ReleaseResource() when the Var
+ * reference count goes to zero.
*/
PP_VARTYPE_RESOURCE = 10
};
diff --git a/ppapi/api/ppb_var.idl b/ppapi/api/ppb_var.idl
index ecb3707..cc12b1b 100644
--- a/ppapi/api/ppb_var.idl
+++ b/ppapi/api/ppb_var.idl
@@ -29,9 +29,13 @@ interface PPB_Var {
/**
* Release() removes a reference to given var, deleting it if the internal
- * reference count becomes 0. If the given var is not a refcounted object,
- * this function will do nothing so you can always call it no matter what
- * the type.
+ * reference count becomes 0. If the <code>PP_Var</code> is of type
+ * <code>PP_VARTYPE_RESOURCE</code>,
+ * it will implicitly release a reference count on the
+ * <code>PP_Resource</code> (equivalent to PPB_Core::ReleaseResource()).
+ *
+ * If the given var is not a refcounted object, this function will do nothing
+ * so you can always call it no matter what the type.
*
* @param[in] var A <code>PP_Var</code> that will have a reference removed.
*/
@@ -46,7 +50,7 @@ interface PPB_Var {
*
* If the length is 0, the <code>*data</code> pointer will not be dereferenced
* and may be <code>NULL</code>. Note, however if length is 0, the
- * "NULL-ness" will not be preserved, as <code>VarToUtf8</code> will never
+ * "NULL-ness" will not be preserved, as VarToUtf8() will never
* return <code>NULL</code> on success, even for empty strings.
*
* The resulting object will be a refcounted string object. It will be
@@ -74,8 +78,8 @@ interface PPB_Var {
*
* If the length is 0, the <code>*data</code> pointer will not be dereferenced
* and may be <code>NULL</code>. Note, however if length is 0, the
- * "NULL-ness" will not be preserved, as <code>VarToUtf8</code> will never
- * return <code>NULL</code> on success, even for empty strings.
+ * "NULL-ness" will not be preserved, as VarToUtf8() will never return
+ * <code>NULL</code> on success, even for empty strings.
*
* The resulting object will be a refcounted string object. It will be
* AddRef'ed for the caller. When the caller is done with it, it should be
@@ -127,7 +131,9 @@ interface PPB_Var {
PP_Resource VarToResource([in] PP_Var var);
/**
- * Creates a new <code>PP_Var</code> from a given resource.
+ * Creates a new <code>PP_Var</code> from a given resource. Implicitly adds a
+ * reference count on the <code>PP_Resource</code> (equivalent to
+ * PPB_Core::AddRefResource(resource)).
*
* @param[in] resource A <code>PP_Resource</code> to be wrapped in a var.
*
diff --git a/ppapi/c/pp_var.h b/ppapi/c/pp_var.h
index 0648c65..15a8df6 100644
--- a/ppapi/c/pp_var.h
+++ b/ppapi/c/pp_var.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From pp_var.idl modified Thu Sep 12 16:41:36 2013. */
+/* From pp_var.idl modified Thu Apr 10 14:52:30 2014. */
#ifndef PPAPI_C_PP_VAR_H_
#define PPAPI_C_PP_VAR_H_
@@ -54,28 +54,29 @@ typedef enum {
* The Var represents a string. The <code>as_id</code> field is used to
* identify the string, which may be created and retrieved from the
* <code>PPB_Var</code> interface. These objects are reference counted, so
- * AddRef and Release must be used properly to avoid memory leaks.
+ * AddRef() and Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_STRING = 5,
/**
* Represents a JavaScript object. This vartype is not currently usable
* from modules, although it is used internally for some tasks. These objects
- * are reference counted, so AddRef and Release must be used properly to avoid
- * memory leaks.
+ * are reference counted, so AddRef() and Release() must be used properly to
+ * avoid memory leaks.
*/
PP_VARTYPE_OBJECT = 6,
/**
* Represents an array of Vars. The <code>as_id</code> field is used to
* identify the array, which may be created and manipulated from the
* <code>PPB_VarArray</code> interface. These objects are reference counted,
- * so AddRef and Release must be used properly to avoid memory leaks.
+ * so AddRef() and Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_ARRAY = 7,
/**
* Represents a mapping from strings to Vars. The <code>as_id</code> field is
* used to identify the dictionary, which may be created and manipulated from
* the <code>PPB_VarDictionary</code> interface. These objects are reference
- * counted, so AddRef and Release must be used properly to avoid memory leaks.
+ * counted, so AddRef() and Release() must be used properly to avoid memory
+ * leaks.
*/
PP_VARTYPE_DICTIONARY = 8,
/**
@@ -83,14 +84,24 @@ typedef enum {
* represents Typed Arrays in JavaScript. Unlike JavaScript 'Array', it is
* only meant to contain basic numeric types, and is always stored
* contiguously. See PPB_VarArrayBuffer_Dev for functions special to
- * ArrayBuffer vars. These objects are reference counted, so AddRef and
- * Release must be used properly to avoid memory leaks.
+ * ArrayBuffer vars. These objects are reference counted, so AddRef() and
+ * Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_ARRAY_BUFFER = 9,
/**
- * Resources are not currently supported but will be added in the future
- * These objects are reference counted, so AddRef and Release must be used
- * properly to avoid memory leaks.
+ * This type allows the <code>PP_Var</code> to wrap a <code>PP_Resource
+ * </code>. This can be useful for sending or receiving some types of
+ * <code>PP_Resource</code> using <code>PPB_Messaging</code> or
+ * <code>PPP_Messaging</code>.
+ *
+ * These objects are reference counted, so AddRef() and Release() must be used
+ * properly to avoid memory leaks. Under normal circumstances, the
+ * <code>PP_Var</code> will implicitly hold a reference count on the
+ * <code>PP_Resource</code> on your behalf. For example, if you call
+ * VarFromResource(), it implicitly calls PPB_Core::AddRefResource() on the
+ * <code>PP_Resource</code>. Likewise, PPB_Var::Release() on a Resource
+ * <code>PP_Var</code> will invoke PPB_Core::ReleaseResource() when the Var
+ * reference count goes to zero.
*/
PP_VARTYPE_RESOURCE = 10
} PP_VarType;
diff --git a/ppapi/c/ppb_var.h b/ppapi/c/ppb_var.h
index 91a6592..b4a361a 100644
--- a/ppapi/c/ppb_var.h
+++ b/ppapi/c/ppb_var.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From ppb_var.idl modified Thu Feb 6 13:48:33 2014. */
+/* From ppb_var.idl modified Thu Apr 10 14:54:41 2014. */
#ifndef PPAPI_C_PPB_VAR_H_
#define PPAPI_C_PPB_VAR_H_
@@ -44,9 +44,13 @@ struct PPB_Var_1_2 {
void (*AddRef)(struct PP_Var var);
/**
* Release() removes a reference to given var, deleting it if the internal
- * reference count becomes 0. If the given var is not a refcounted object,
- * this function will do nothing so you can always call it no matter what
- * the type.
+ * reference count becomes 0. If the <code>PP_Var</code> is of type
+ * <code>PP_VARTYPE_RESOURCE</code>,
+ * it will implicitly release a reference count on the
+ * <code>PP_Resource</code> (equivalent to PPB_Core::ReleaseResource()).
+ *
+ * If the given var is not a refcounted object, this function will do nothing
+ * so you can always call it no matter what the type.
*
* @param[in] var A <code>PP_Var</code> that will have a reference removed.
*/
@@ -59,8 +63,8 @@ struct PPB_Var_1_2 {
*
* If the length is 0, the <code>*data</code> pointer will not be dereferenced
* and may be <code>NULL</code>. Note, however if length is 0, the
- * "NULL-ness" will not be preserved, as <code>VarToUtf8</code> will never
- * return <code>NULL</code> on success, even for empty strings.
+ * "NULL-ness" will not be preserved, as VarToUtf8() will never return
+ * <code>NULL</code> on success, even for empty strings.
*
* The resulting object will be a refcounted string object. It will be
* AddRef'ed for the caller. When the caller is done with it, it should be
@@ -106,7 +110,9 @@ struct PPB_Var_1_2 {
*/
PP_Resource (*VarToResource)(struct PP_Var var);
/**
- * Creates a new <code>PP_Var</code> from a given resource.
+ * Creates a new <code>PP_Var</code> from a given resource. Implicitly adds a
+ * reference count on the <code>PP_Resource</code> (equivalent to
+ * PPB_Core::AddRefResource(resource)).
*
* @param[in] resource A <code>PP_Resource</code> to be wrapped in a var.
*