@@ -69,7 +69,7 @@ public class PropertyValueBuffer
6969 /**
7070 * If we get non-creator parameters before or between
7171 * creator parameters, those need to be buffered. Buffer
72- * is just a simple linked list
72+ * is just a simple linked list.
7373 */
7474 protected PropertyValue _buffered ;
7575
@@ -80,7 +80,7 @@ public class PropertyValueBuffer
8080 protected Object _idValue ;
8181
8282 /**
83- * "Any setter" property bound to a Creator parameter (via {@code @JsonAnySetter})
83+ * "Any setter" property bound to a Creator parameter (via {@code @JsonAnySetter}).
8484 *
8585 * @since 2.18
8686 */
@@ -94,14 +94,25 @@ public class PropertyValueBuffer
9494 */
9595 protected PropertyValue _anyParamBuffered ;
9696
97+ /**
98+ * Indexes properties that are injectable, if any; {@code null} if none.
99+ *
100+ * @since 2.21
101+ */
102+ protected final BitSet _injectablePropIndexes ;
103+
97104 /*
98105 /**********************************************************************
99106 /* Life-cycle
100107 /**********************************************************************
101108 */
102109
110+ /**
111+ * @since 3.1
112+ */
103113 public PropertyValueBuffer (JsonParser p , DeserializationContext ctxt , int paramCount ,
104- ObjectIdReader oir , SettableAnyProperty anyParamSetter )
114+ ObjectIdReader oir , SettableAnyProperty anyParamSetter ,
115+ BitSet injectablePropIndexes )
105116 {
106117 _parser = p ;
107118 _context = ctxt ;
@@ -119,6 +130,8 @@ public PropertyValueBuffer(JsonParser p, DeserializationContext ctxt, int paramC
119130 } else {
120131 _anyParamSetter = anyParamSetter ;
121132 }
133+ _injectablePropIndexes = (injectablePropIndexes == null )
134+ ? null : (BitSet ) injectablePropIndexes .clone ();
122135 }
123136
124137 /**
0 commit comments