code: private void computeParametersInfo(String signature, boolean isStatic) {
          assert signature != null && !signature.isEmpty();
          // static methods does not have reference to this
          int stackSize = isStatic ? 0 : 1;
          GenericSignatureParser parser = new GenericSignatureParser(signature);
          Iterator<String> iterator = parser.parameterSignatureIterator();
          int paramIdx = 0;
          slotToParameter = new ArrayList<Integer>();
          while (iterator.hasNext()) {
              String parameter = iterator.next();
              if (parameter.equals("D") || parameter.equals("J")) {
                  // double and long types takes two slots
                  stackSize += 2;
                  slotToParameter.add(paramIdx);
                  slotToParameter.add(paramIdx);
              } else {
                  stackSize++;
                  slotToParameter.add(paramIdx);
              }
              paramIdx++;
          }
          parameterStackSize = stackSize;
      }
docs: Compute two values:
  <li>The number of values required on the stack for a specific call.</li>
  <li>The parameter association with each slot.</li>
  
  <hr/>
  
  For exemple : "(I[Ljava/lang/String;Ljava/lang/Object;)V" =>  void a(Integer, String, Object)<br/><br/>
  Expected Stack prior the method invocation :<br/>
  <pre>
  +--------------+
  | 0: Object    |
  +--------------+
  | 1: String    |
  +--------------+
  | 2: int       |
  +--------------+
  </pre>
  <hr/>
  
  Special note: double and long (primitive types) value take two slots.<br/>
  For exemple : "(IDJ)V" =>  void a(Integer, Double, Long)
  <pre>
  +--------------+
  | 0: long  pt1 |
  +--------------+
  | 1: long  pt2 |
  +--------------+
  | 2: double pt1|
  +--------------+
  | 3: double pt2|
  +--------------+
  | 4: int       |
  +--------------+
  </pre>
  
  @param signature
  @param isStatic
  @return